remove() aus der Kommandozeile(*argv[])
-
Servus,
hab Windows XP und schreib mit Notpad++ und will eine Datei aus der Kommandozeile löschen.
Hab mir sehr viele Foren Themen angesehen und gegoogelt aber bisher klappt es leider noch nicht.
Lese aus der Kommandozeile mit char *argv[].
argv hab ich schon mit argv ++ weitergeschaltet. Es würde also auf die richtige Datei zeigen. Bin mir sicher da ich vorher damit auch schon etwas damit anstelle.[code]
if( remove (*argv) == 0 )
{
cerr <<endl<<"deleted"<<endl;
exit(-1);
}
else
cerr <<endl<<"not deleted"<<endl;
[\code]Leider kommt keine Fehlermeldung vom Compiler.
Die Datei wird so nicht gelöscht.
bekomme -1 als Rückgabewert zurück.
*argv deshalb weil ich *argv[] in die Funktion übergebeKann mir jemand weiterhelfen ??
-
del <dateiname>
-
Danke für die Aufmerksamkeit Tachylon.
Du meinst das ich den "del" Befehl in die Konsole eingeben soll zum löschen.
Den "del" Befehl in C++ gibt es nicht. nicht in cppreference.com ( habs zumindest nicht gefunden)Meine Absicht ist schon das ganze in einer cpp Datei ausführen zu lassen.
Grund: wenn ich meine Ausgabe Datei erstelle und es wäre keine .txt Datei sondern z.B. .tx dann erstellt er mir ja z.B. ausgabe.tx
Um dies zu vermeiden will ich diese Datei sofort wieder löschen damit es kein Chaos wird.
-
sepplein schrieb:
Meine Absicht ist schon das ganze in einer cpp Datei ausführen zu lassen.
Grund: wenn ich meine Ausgabe Datei erstelle und es wäre keine .txt Datei sondern z.B. .tx dann erstellt er mir ja z.B. ausgabe.tx
Um dies zu vermeiden will ich diese Datei sofort wieder löschen damit es kein Chaos wird.Erstell die Datei doch erst garnicht.
-
sepplein schrieb:
Danke für die Aufmerksamkeit Tachylon.
Du meinst das ich den "del" Befehl in die Konsole eingeben soll zum löschen.
Den "del" Befehl in C++ gibt es nicht. nicht in cppreference.com ( habs zumindest nicht gefunden)Meine Absicht ist schon das ganze in einer cpp Datei ausführen zu lassen.
Grund: wenn ich meine Ausgabe Datei erstelle und es wäre keine .txt Datei sondern z.B. .tx dann erstellt er mir ja z.B. ausgabe.tx
Um dies zu vermeiden will ich diese Datei sofort wieder löschen damit es kein Chaos wird.Dann schau,dass du immer .txt hast..

Ansonsten schau dir mal OS spezifische API's an. (z.B WinAPI). Ansonsten gibt es auch noch Boost Filesystem, als unabhängige Variante.
-
Jetzt hab ichs!!!
@hö? Hatte Logikfehler
Der Programmabblauf sieht so aus.
( Schemamäßig zur besseren verständlichkeit )Funktion controlle der ganzen Eingaben über der Kommandozeile()
{
......
ofstream target_file ( *++argv ); //hier wird ofstream Deklariert
Funktion kontrolle ob .txt Datei ( argv ); // Kontrolle ob txt Datei
file_copy_in_Ausgabe ( target_file , source_file ) // von readfile in writefile
}Die Ausgabe Datei wird ja schon von ofstream erstellt.
Da ich danach erst in
Funktion kontrolle ob .txt Datei
überprüfe ob es eine txt datei handelt hat er ja schon die falsche Datei erstellt.so is es richtig
Funktion controlle der ganzen Eingaben über der Kommandozeile()
{
......
Funktion kontrolle ob .txt Datei ( ++argv ); // Kontrolle ob txt Datei
ofstream target_file ( *argv ); //hier wird ofstream Deklariert
file_copy_in_Ausgabe ( target_file , source_file ) // von readfile in writefile
}Normal versuch ich auch keine falsche Eingabe zu machen.
Das Programm sollte aber so sicher wie möglich sein.Danke für die Info er library "Boost Filesystem". Ich denk des is ganz hilfreich auf den ersten Blick.
Danke an alle!!!
-
Du könntest das aber eher so machen:
Dateiname aus Kommanddozeile holen. Wenn Endung = txt dann Datei oeffnen andernfalls Fehler ausgeben (alternativ: txt erzwingen, indem es einfach angehangen wird) Ende Wenn