1
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