CFileDialog Problem/Frage



  • Hallo,

    ich habe folgendes Anliegen:

    Ich möchte ein Backup zu einem Verzeichnis (hier: Log) erstellen. Den Speicherort für das Backup ermittle ich über einen CFileDialog.
    Hierbei wird der Name (hier: Log) in das CFileDialog Fenster eingetragen (siehe Bild).

    http://yfrog.com/7gscreen1kfj

    Nun mein Problem: Wenn der Ordner Log bereits im Zielverzeichnis vorhanden ist, möchte ich nur die nicht vorhanden Dateien kopieren, die schon vorhandenen sollen unberührt bleiben. Auch wenn ich im CFileDialog auf öffnen klicke, öffnet er den bereits vorhandenen Log Ordner und ich erzeuge einen neuen Log Unterorder. Wie kann ich dies vermeiden?

    Hier mein Quellecode, mit dem ich das Zielverzeichnis auswähle und mit dem kopiert wird:

    // Objekt zum Speichern erzeugen
    CFileDialog m_DateiZiel(FALSE, NULL, strQuelle, OFN_OVERWRITEPROMPT, strDateiEndung);
    
    // Text für die Titelleiste des Speicher-Dialogs ändern
    m_DateiZiel.m_ofn.lpstrTitle="Select destination to save";
    
    // Speicher-Dialogfeld öffnen und Ergebnis auffangen
    if(m_DateiZiel.DoModal()==IDOK)
    {
       // Gewählten Pfad zum Speichern ermitteln
       strZiel = m_DateiZiel.GetPathName();
    
       // überprüfen, ob Pfad zulässig
       // TO DO
    
       // Datei kopieren
       strQuelle += '\0';
          strZiel += '\0';
    
       SHFILEOPSTRUCT shFile;
       ZeroMemory(&shFile, sizeof(shFile));
       shFile.wFunc = FO_COPY;
       shFile.pFrom = strQuelle;
       shFile.pTo = strZiel;
       SHFileOperation(&shFile);	  
    }
    

    Danke.

    Gruß
    Flo


Anmelden zum Antworten