Ordner und Dateien Kopieren



  • Hi, ich möchte ein Sicherungs-Programm schreiben, dass mir meine wichtigen Dateien auf einen Buttonklick in ein bestimmtes Verzeichnis kopiert.

    Dabei soll es möglich sein, ganze Ordner, die wieder Ordner und dateien enthalten können zu kopieren.

    ich habe mich mit der msdn auseinandergesetzt, habe mit CFileFinder keine Möglichkeit gefunden, ganze ordner zu kopieren.

    bitte um hilfe !



  • Meines wissens nach musst du mit FindFirst bzw. FindNext File die Dateien und Ordner suchen.
    Alles was der dann findet musst du in deinem *Save* Ordner Kopieren bzw. anlegen.

    Zu FindFirst und FindNext findest du etwas in der FAQ.

    Wenn du es schnell und billig haben willst dann schreibe einfach:

    system("copy X:\bla\. Z:\Save\");

    Ich hoffe ich konnte etwas helfen.

    MFG

    ReneS



  • Danke, das habe ich versucht. Allerdings konnte ich mit CFileFind::FindNextFile() nur Dateien, aber keine Ordner finden.
    muss weiterlesen.....



  • Nur mal ein Beispiel.
    Mit diesem Code suche und Liste ich alle Dateien namens "Index.html" auf.
    Aber dort kann ich dir zeigen wo du die Ordner anlegen musst.

    char szMsg[MAX_PATH];
    char szPATH[MAX_PATH];
    strcpy(szPATH, szChrStartPath);
    if(szPATH[strlen(szPATH)-1] != '\\')
    strcat(szPATH, "\\");
    strcat(szPATH, "*.*");
    WIN32_FIND_DATA data;
    HANDLE handle = FindFirstFile(szPATH, &data);
    
    if(handle != INVALID_HANDLE_VALUE)
    {
    do
    {
    if(data.dwFileAttributes == FILE_ATTRIBUTE_DIRECTORY &&
    data.cFileName[strlen(data.cFileName)-2] != '.' &&
    data.cFileName[strlen(data.cFileName)-1] != '.')
    {
    sprintf(szMsg, "%s\\%s", szChrStartPath, data.cFileName);
    //Hier wird ein Ordner gefunden!!!
    _mkdir(szMsg);//Erstelle Ordner in deinem Save Part.
    getsave(szMsg);//Funktion mit neuem Ordner Starten!
    }
    else if(data.dwFileAttributes != FILE_ATTRIBUTE_DIRECTORY &&
    data.cFileName[strlen(data.cFileName)-2] != '.' &&
    data.cFileName[strlen(data.cFileName)-1] != '.')
    {
    sprintf(szMsg, "%s\\%s", szChrStartPath,data.cFileName);
    //Hier wird eine Datei gefunden.
    CopyFile(szMsg,"X:\Bla\Save\file.fil");//Copy File
    }
    }
    while(FindNextFile(handle, &data) != 0);
    }
    if(handle == INVALID_HANDLE_VALUE)MessageBox("ERROR Find Handle is Invalide","ERROR",MB_OK);
    gi = 0;
    
    FindClose(handle);
    

    Musst mal etwas Probieren, aber es Funktioniert in der Theorie.
    Wenn du Fragen hast dann schreibe mir.
    Mail: rene@rssoftware.de

    MFG

    RS

    😉


Anmelden zum Antworten