C++ Datei kopieren



  • Hi, ich hab hier eine kleine Funktion zum kopieren von Daten, aber dabei werden leider nicht die Dateiattribute wie "versteckt" oder ähnliches kopiert... wie kann man diese Sachen machen ?

    long CopyData(string Input, string Output, long BufferSize)
    {
        char *Buffer;
        long DataSize = 0;
        long CopyStatus = 0;
        long MainBufferSize = 0;
    
        ifstream infile(Input.c_str(),ifstream::binary);
        if(infile.is_open() == false) return -1;   
        ofstream outfile(Output.c_str(),ifstream::binary);
        if(outfile.is_open() == false) return -2;
    
        infile.seekg(0,ifstream::end);
        DataSize = infile.tellg();
        infile.seekg(0, ifstream::beg);  
    
        Buffer = new char[BufferSize];
        MainBufferSize = BufferSize;   
    
        /* Datei kopieren */
        while(!infile.eof())
        {
            /* Binärdaten auslesen */
            CopyStatus += BufferSize;
            if(CopyStatus > DataSize)
            {
                MainBufferSize = BufferSize - (CopyStatus - DataSize);
            }
            else
            {
                MainBufferSize = BufferSize;
            }
            infile.read (Buffer, MainBufferSize);     
    
            /* Binärdaten wieder schreiben */
            outfile.write (Buffer, MainBufferSize);   
        }
    
        /* Aufräumen */
        delete[] Buffer;
        infile.close();
        outfile.close(); 
        return DataSize;
    }
    

    So, wenn ich also einen versteckte Datei z.B. kopiere, dann ist diese nach der Funktion zwar funktions bereit, aber nicht mehr versteckt.. 😕

    Gruß Chris



  • Hallo,
    Dateiattribute sind Dateisystemabhängig und damit außerhalb von Standard-C++. Welches BS verwendest du?



  • Hi, hat sich durch einen anderen Thread erledigt :), ich benutze Win XP, und regel das nun mit GetFileAttributes und SetFileAttributes 😉 danke !


Anmelden zum Antworten