Datei - Ordner löschen
- 
					
					
					
					
 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 ]