SHFILEOPSTRUCT - Cannot read from the source file or disk.
-
Hallo
Ich habe ein Problem beim Kopieren mit SHFILEOPSTRUCT. Variante 1 funktioniert. Variante 2 bringt "Cannot read from the source file or disk."
Variante 1:
void SAVEFolder(CString szFrom, CString szTo) { SHFILEOPSTRUCT shfos_Folder; shfos_Folder.pFrom = "C:\\Folder1\\*.*"; shfos_Folder.pTo = szTo; shfos_Folder.hwnd = NULL; shfos_Folder.wFunc = FO_COPY; shfos_Folder.fFlags = FOF_NOCONFIRMMKDIR | FOF_NOCONFIRMATION; SHFileOperation(&shfos_Folder); }
Variante 2:
void SAVEFolder(CString szFrom, CString szTo) { szFrom=szFrom+"\\*.*"; szTo=szTo+"\\"; SHFILEOPSTRUCT shfos_Folder; shfos_Folder.pFrom = szFrom; shfos_Folder.pTo = szTo; shfos_Folder.hwnd = NULL; shfos_Folder.wFunc = FO_COPY; shfos_Folder.fFlags = FOF_NOCONFIRMMKDIR | FOF_NOCONFIRMATION; SHFileOperation(&shfos_Folder); }
Habe nur ich das Gefühl, oder ist SHFILEOPSTRUCT nicht besonders gut dokumentiert?
Ich würde mich echt freuen wenn mir einer helfen könnte...
-
wofür is'n das da?
szTo=szTo+"\";
bei variante 1 hast du auch nich noch ein \ drangemacht
-
szTo=szTo+"\";
Spielt keine Rolle... habe ein wenig experimentiert. Ich habe mit CSTRING::Compare szFrom der Variante 1 und 2 verglichen. Kein Unterschied. Aber irgendwo da muss ja das Problem sein. Oder?
-
lass einfach mal den string ausgeben
-
Wenn ich mit mit MessageBox szFrom ausgebe, sieht alles ok aus. Anders gesagt szFrom von Variante 1 ist gleich wie szFrom von Variante 2. (CString::Compare gibt ja auch 0 zurück).
-
Ich habs:
szFrom+='\0';
-
Kannst du vielleicht deinen aktuellen Code, in dem du die VErzeichnisnamen den CStrings übergibst hier mal posten!
Ich habe nämlich dasselbe Problem!
Danke schon mal im vorraus!