Filou Geschrieben 12. April 2005 Geschrieben 12. April 2005 Hallo! ich möchte ein koomplettes Verzeichnis kopieren. Ich habe in der Hilfe gefunden, dass es dafür keine fertige Funktion gibt. Jetzt wollte ich eine selber machen, aber vielleicht könnt Ihr mir helfen, ich komme nicht weiter... Wenn ich den Dateinamen hätte, könnte ich ja in einer Schleife jede Datei einzeln kopieren. Aber ich komme schonmal nicht an den Dateinamen. So hab ichs gemacht: bool CBaderDlg::CopyDir(CString csSourceDir, CString csDestinationDir) { bool bCopyComplete = TRUE; WIN32_FIND_DATA FindFileData; HANDLE hFind; CString csTest; hFind = FindFirstFile(csSourceDir, &FindFileData); if (hFind == INVALID_HANDLE_VALUE) { MessageBox("Fehlercode: INVALID_HANDLE_VALUE","Dateifehler", MB_ICONSTOP); bCopyComplete = FALSE; } csTest = FindFileData.cFileName; return bCopyComplete; } Also das ganze soll jetzt den Dateinamen auslesen und den müsste ich ja dann in csTest finden. Tut es aber nicht! es tritt immer INVALID_HANDLE_VALUE auf. Könnt ihr mir helfen?? DANKE!!! Zitieren
Klotzkopp Geschrieben 12. April 2005 Geschrieben 12. April 2005 ich möchte ein koomplettes Verzeichnis kopieren. Ich habe in der Hilfe gefunden, dass es dafür keine fertige Funktion gibt. Doch, gibt es: SHFileOperation. Zitieren
Filou Geschrieben 12. April 2005 Autor Geschrieben 12. April 2005 Doch, gibt es: SHFileOperation. Kannst Du mir auch sagen, wie das damit funktioniert??? Zitieren
Klotzkopp Geschrieben 12. April 2005 Geschrieben 12. April 2005 Kannst Du mir auch sagen, wie das damit funktioniert???Ja, kann ich. Aber in der MSDN Library steht's auch. Gibt es ein konkretes Problem? Zitieren
Filou Geschrieben 12. April 2005 Autor Geschrieben 12. April 2005 Also ich habe jetzt Quelle und Ziel gesetzt, aber es funktioniert nicht :-( Was fehlt denn noch??? SHFILEOPSTRUCT shCopy; shCopy.wFunc = FO_COPY; shCopy.pFrom = csSourceDir; // C:\Test1\ shCopy.pTo = csDestinationDir; // C:\Test2\ shCopy.fFlags = FOF_NOCONFIRMATION; SHFileOperation(&shCopy); Zitieren
Klotzkopp Geschrieben 12. April 2005 Geschrieben 12. April 2005 Du solltest die gesamte Struktur mit 0 initialisieren. Sonst haben Member, die du nicht zuweist, zufällige Werte. Das ist nicht in deinem Interesse: SHFILEOPSTRUCT shCopy [B]= {0}[/B];pFrom und pTo brauchen doppelte Nullterminierung (sagt die MSDN Library). Ansonsten kann ich nur auf meine Signatur verweisen. Welchen Rückgabewert bekommst du denn? Zitieren
Filou Geschrieben 12. April 2005 Autor Geschrieben 12. April 2005 Du solltest die gesamte Struktur mit 0 initialisieren. Sonst haben Member, die du nicht zuweist, zufällige Werte. Das ist nicht in deinem Interesse: SHFILEOPSTRUCT shCopy [B]= {0}[/B];pFrom und pTo brauchen doppelte Nullterminierung (sagt die MSDN Library). Ansonsten kann ich nur auf meine Signatur verweisen. Welchen Rückgabewert bekommst du denn? Vielen Dank für Deine Hilfe, aber es kopiert immer noch nicht Gebe ich die Quelle so an: "C:\\test" kopiert es nicht und SHFileOperation gibt NULL zurück. Und gebe ich die Quelle so an: "C:\\test\\" sagt er, dass auf dem Datenträger nicht gelesen werden kann. Sorry, wenn ich Deine Geduld so sehr straperziere... Ich lade Dich mal zu nem Eis ein Zitieren
Filou Geschrieben 12. April 2005 Autor Geschrieben 12. April 2005 Vielen Dank für Deine Hilfe, aber es kopiert immer noch nicht Gebe ich die Quelle so an: "C:\\test" kopiert es nicht und SHFileOperation gibt NULL zurück. Und gebe ich die Quelle so an: "C:\\test\\" sagt er, dass auf dem Datenträger nicht gelesen werden kann. Sorry, wenn ich Deine Geduld so sehr straperziere... Ich lade Dich mal zu nem Eis ein Hat sich erledigt!! Hat geklappt :-) Zitieren
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.