probleme mit SHFileOperation
-
hi
ich habe folgenden code geschrieben:
void loesche (char* datei) { SHFILEOPSTRUCT fileop = { NULL, FO_DELETE, (LPCTSTR)name, NULL, FOF_SILENT | FOF_NOERRORUI | FOF_NOCONFIRMATION, NULL, NULL, NULL }; if(SHFileOperation(&fileop) == 0) { MessageBox(NULL, "Dateien geloescht!", "", 0); } else { MessageBox(NULL, "Dateien NICHT geloescht!", "error", 0); } } int main(int argc, char* argv[]) { char t[255]; int i; for (i=0;i<=50; i++) { sprintf(t,"c:\\%d\\test*.txt",i); loesche(t); } return 0; }ich möchte in diesem fall aus den verzeichnissen c:\1 bist c:\50 alle txt-dateien löschen, welche mit test beginnen. verwende ich wie dargestellt sprintf, so werden keine dateien gelöscht. übergeb ich der funktion folgenden aufruf: "loesche("C:\\2\\test*.txt")" so werden alle test-dateien im angegebenen ordner gelöscht.
im debugger ist aber kein unterschied bei der belegung von SHFILEOPSTRUCT fileop zu erkennen.
ich hoffe ihr könnt mir helfen.
mfg
swen
-
Vermutung:
\0 am Ende des Strings auch wirklich mit dabei? Wenn ich recht erinnere hatte ich damit mal Probleme...
Grüße, Volle.
-
Volle schrieb:
Vermutung:
\0 am Ende des Strings auch wirklich mit dabei? Wenn ich recht erinnere hatte ich damit mal Probleme...
Grüße, Volle.
hi
danke für antwort. das hab ich auch erst vermutet aber auch der aufruf
sprintf(t,"c:\\%d\\test*.txt\0",i); loesche(t);bringt nichts.
swen
-
dasselbe problem tritt übrigends auch bei allen anderen operationen (fo_move,fo_copy,fo_rename) auf.
ich bekomme das irgendwie nicht gebacken aus welchem grund dem so ist.swen