Datei - Ordner löschen
-
Also ich hab da ein Problem. Wie kann ich z.B. den Ordner c:\Testordner mit seinem gesamten Inhalt und Unterordnern auf einen schlag löschen?? Oder muss ich jede Datei einzeln angeben???
Danke für eure Hilfe
-
Hallo,
spontan fällt mir da nur deltree ein:
system("deltree /y C:\\testordner");
Gruß
-
Zwar nicht ganz so wie ich mir das vorgestellt habe images/smiles/icon_wink.gif images/smiles/icon_wink.gif aber es funktioniert images/smiles/icon_smile.gif. Danke. Noch eine Frage: Geht das auch auf allen Betriebssystemen oder hat irgend ein Windoof diese Datei nicht??
-
Shit. Zu früh gefreut images/smiles/icon_mad.gif images/smiles/icon_mad.gif images/smiles/icon_mad.gif Wenn der Ordner nämlich c:\\Test Ordner heißt, gehts nicht mehr. So ein Mist.
[ 08.07.2001: Beitrag editiert von: Stefan ]
-
dann müsste es aber so gehen:
system("deltree /y 'C:\\test ordner'");
alle angaben ohne gewähr images/smiles/icon_biggrin.gif[ 08.07.2001: Beitrag editiert von: dEUs ]
-
So gehts leider nicht, Deus. Aber so:
CString befehl, anfz;
anfz = 34;
befehl = "deltree /y " + anfz + "C:\\Test Ordner" + anfz;
system(befehl);Nebenbei: Gibt es eigentlich eine bessere Methode einem String " zuzuweisen als so: CString zeichen = 34; ???
-
ja:
CString strAnfz="\"";
-
man könnte es dann auch so schreiben:
system("deltree /y \"C:\\test ordner\"");
-
sollte das nicht mit SHFileOperatiorn gehen? http://msdn.microsoft.com/library/default.asp?url=/library/en-us/shellcc/shellcc/shell/Functions/SHFileOperation.asp
-
Shade Of Mine hat recht.
Mit system() verwendet man externe Programme. Geht zwar auch aber ist nicht so schon wie eine API- bzw. MFC Funktion.
SHFILEOPSTRUCT myFileOp; myFileOp.hwnd = 0; myFileOp.wFunc =FO_DELETE ; // Hier der Ordner myFileOp.pFrom = "c:\\test"; // Hier kommt ob oder wie ein Dialog angezeigt wird. myFileOp.fFlags = FOF_NOCONFIRMATION ; myFileOp.lpszProgressTitle = "Delete Ordner"; SHFileOperation(&myFileOp);
-
void DELdir(CString dir)
{
SHFILEOPSTRUCT DelDir;
ZeroMemory(&DelDir, sizeof(DelDir));
DelDir.wFunc = FO_DELETE ;
DelDir.pFrom = dir;
DelDir.fFlags=FOF_SILENT | FOF_NOCONFIRMATION;
SHFileOperation( &DelDir);
}//FOF_SILENT -> keine progress anziege
//FOF_ALLOWUNDO -> in papierkorp !
//FOF_NOERRORUI -> keine meldungen anzeigen
//FOF_NOCONFIRMATION -> auf alles mit JA antworten, wie z.B. "Wollen Sie diesen Ordner löschen ?"
//wenn kein flag erwüncht -> fFlags = 0;
-
Okay, wenn ich folgenden Code habe:
SHFILEOPSTRUCT myFileOp; myFileOp.hwnd = 0; myFileOp.wFunc =FO_DELETE ; // Hier der Ordner myFileOp.pFrom = "c:\\test"; // Hier kommt ob oder wie ein Dialog angezeigt wird. myFileOp.fFlags = FOF_NOCONFIRMATION ; myFileOp.lpszProgressTitle = "Delete Ordner"; SHFileOperation(&myFileOp);
Funktionierts.
Wenn ich aber folgenden Code habe:
SHFILEOPSTRUCT myFileOp; ZeroMemory(&myFileOp, sizeof(myFileOp)); myFileOp.hwnd = 0; myFileOp.wFunc =FO_DELETE ; // Hier der Ordner myFileOp.pFrom = Path; // Hier kommt ob oder wie ein Dialog angezeigt wird. myFileOp.fFlags = FOF_NOCONFIRMATION ; myFileOp.lpszProgressTitle = "Delete Ordner"; SHFileOperation(&myFileOp);
Gehts nicht. Path ist ein CString und enthält den Ordnernamen.
Ich erhalte eine Fehlermeldung das die Datei nicht gelöscht werden kann, weil sie nicht gefunden wurde?? Wer kann mir helfen??
-
Hey Leute, lasst mich jetzt bitte net hängen, ich bin schon ganz verzweifelt images/smiles/icon_confused.gif images/smiles/icon_confused.gif images/smiles/icon_confused.gif images/smiles/icon_confused.gif images/smiles/icon_confused.gif images/smiles/icon_confused.gif
-
aus der MSDN-Hilfe:
*pFrom
Address of a buffer to specify one or more source file names. Multiple names must be null-separated. The list of names must be double null-terminated.
*d.h. du mußt an Deinen CString noch ne zweite "\0" anhängen, dann sollte es gehen
Path = Path + '\0';
Gruß
Jan
-
Danke, das wars. Ich bin nämlich schon fast verzweifelt. hab das in der MSDN auch gelesen, habe aber:
Path = Path + "\0"; geschrieben. Das war halt ein Fehler. Danke, Jan
-
Kommt für zukünftige USER in die FAQ-MFC.
[ 11.07.2001: Beitrag editiert von: idts ]