Problem mit system("del ...");
-
Hallo zusammen,
ich möchte in einer Konsolenanwendung eine Datei löschen.
Der Name wird hierbei in einem Char-Array an eine Funktion weitergegeben. (Beispiel char datei[40])Nun zu meiner Frage: Wie bekomme ich das Array in den Ausdruck system("del ..."); rein?
Ich steh da irgendwie auf dem Schlauch und wäre für jede Hilfe dankbar.MfG
Whooper
-
mit
strcpy(datei,"del meine_datei.txt");Aber sicherheitshalber solltest du den Puffer auf 255 erweitern....
Im übrigen würde ich Dir dringend raten die Finger von system zu lassen, WinAPI und MFC bieten genügend Funktionalität - als das Du eine Shell bemühen müsstest.
-
Moin,
das geht doch jetzt auch nur, wenn man den Namen der Datei in den Source-Code reinschreibt?!? Ich möchte den Namen aber gerne vom Benutzer einlesen lassen und dann an die Funktion weitergeben.
Die Lösung muss übrigens nicht mit system sein. Wenn es eine andere Möglichkeit gibt, würde ich mich auch da über eine Antwort freuen.
MfG
Whooper
-
// datei[40] enthält Deinen Dateinamen char befehl[50]; strcpy(befehl, "del "); strcat(befehl, datei); system(befehl);
-
Auszug aus der MSDN über den C-Shellbefehl remove
remove, _wremove
Delete a file.int remove( const char *path );
int _wremove( const wchar_t *path );
Routine Required Header Compatibility
remove <stdio.h> or <io.h> ANSI, Win 95, Win NT
_wremove <stdio.h> or <wchar.h> Win NTWie Du siehst ist remove weitaus besser als system, denn hier kannst noch den Fehlerstatus abfragen. Für andere Befehle der API oder MFC musst halt mal sagen für was Du das brauchst (eben API oder MFC oder Console).
gruss
-
Ich hab das jetzt erstmal mit system gemacht und die Aufgabe damit geloest.
Wenn ich nochmal Zeit habe, werde ich mir die anderen Moeglichkeiten mal anschauen.
Danke fuer eure Hilfe.