SHFileOperation Problem
-
Hallo zusammen,
ich muss in meinem Programm ein Verzeichnis samt Inhalt löschen!
Habe folgenden Code:SHFILEOPSTRUCT fos; ZeroMemory(&fos, sizeof(fos)); fos.wFunc = FO_DELETE; fos.fFlags = FOF_SILENT | FOF_NOCONFIRMATION; fos.pFrom = directory.c_str(); // temp Verzeichnis löschen SHFileOperation(&fos);Leider löscht er die Verzeichnisse damit nicht! Ich weiss aber nicht was ich falsch mache!
Für Hilfe wäre ich sehr dankbar!
-
rückgabewert? getlasterror? was genau geht nicht? was steht in directory?
fragen über fragen

-
Er löscht das Verzeichnis nicht!
In Directory steht z.b:
"C:\Test\"Der Rückgabewert der Funktion ist NONZERO. Wenn ich dann aber GetLastError() aufrufe liefert er mir 0!
Das komische ist, teilweise klappt das mit dem löschen und teilweise nicht!
-
getlasterror war blödsinn vom mir, wird im dem fall nicht gesetzt.
dein dir müsste sein "C:\\Test" (doppelter backslash beachten)
-
An additional NULL character must be appended to the end of the final name to indicate the end of pFrom.
-
Was genau meinst du mit Null Character?
Sowas wie
"C:\\Test\0"
-
Rummeldi schrieb:
Was genau meinst du mit Null Character?
ein char ist immer am ende mit '\0' terminiert siehe zum bsp:
http://tutorial.schornboeck.net/c_string.htm
http://www.cpp-tutor.de/cpp/le06/le06_01.htm#c_strings
-
flenders schrieb:
An additional NULL character must be appended to the end of the final name to indicate the end of pFrom.
std::string c_str() ist terminiert
-
An additional NULL character must be appended to the end of the final name to indicate the end of pFrom.
Normalerweise hängt natürlich schon eines dran, aber eben keine zwei

-
flenders schrieb:
An additional NULL character must be appended to the end of the final name to indicate the end of pFrom.
Normalerweise hängt natürlich schon eines dran, aber eben keine zwei

ein kleines wort überlesen und schon ist alles falsch 
also wo du recht hast hast du recht