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!!!
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.
Filou Geschrieben 12. April 2005 Autor Geschrieben 12. April 2005 Doch, gibt es: SHFileOperation. Kannst Du mir auch sagen, wie das damit funktioniert???
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?
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);
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?
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
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 :-)
Empfohlene Beiträge
Erstelle ein Benutzerkonto oder melde Dich an, um zu kommentieren
Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können
Benutzerkonto erstellen
Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!
Neues Benutzerkonto erstellenAnmelden
Du hast bereits ein Benutzerkonto? Melde Dich hier an.
Jetzt anmelden