System Befehl zum Kopieren und Löschen einer Datei
-
Hallo zusammen!
Würde gerne mit dem System Befehl eine Datei in einen anderen Ordner kopieren und anschließen das "Original" löschen. Ich würde das gerne mit dem System Befehl machen. Wie lautet der Code in C++ und welche Befehle muss ich eingeben? Habe schon im Forum gesucht, aber leider nichts gefunden.
Wollte es mit
$ cp pfad.c_str pfad2.c_str
probieren. Allerdings bringt das keinen Erfolg!
Gruß, sole2202
-
wie die system befehle heissen kommt auf betriebs system an.
für Windows:
copy(ev. xcopy) und del
für Linux:
cp und rm oda gleich mvSystem("copy bla.l lst C:\\meinordner\\fobar.lst")
fg
-
Hi,
also meinst du im Grunde nicht kopieren, sondern verschieben. Mit "System" ist das vom Betriebsystem abhängig, dann wäre deine Frage hier falsch.
Grundsätzlich geht das aber auch mit C Funktionen:
man: rename
-
Oder auch mit boost::filesystem http://www.boost.org/libs/filesystem/doc/index.htm
MfG Jester
-
Benutze Windows und würde die Datei gerne verschieben (= Kopieren, dann Löschen der Originaldatei).
-
sole2202 schrieb:
Benutze Windows und würde die Datei gerne verschieben (= Kopieren, dann Löschen der Originaldatei).
Dann benutze dazu doch einfach einen der vorgeschlagenen Wege.
Viel Erfolg!
Jester
-
spjoe schrieb:
wie die system befehle heissen kommt auf betriebs system an.
für Windows:
copy(ev. xcopy) und del
für Linux:
cp und rm oda gleich mvSystem("copy bla.l lst C:\\meinordner\\fobar.lst")
fg
auch für windows würde sich
move file to_dir
anbieten...
-
Hallo!
Ich habe nun versucht die Datei folgendermaßen zu kopieren.
pfad = "C:/Konto/Dateien/kunde/geloescht/" + kunde.kuNummer + ".txt"; pfad2 = "C:/Konto/Dateien/kunden/geloescht/" + kunde.kuNummer + ".txt"; system("copy pfad.c_str pfad2.c_str");
Er gibt zwar keinen Fehler aus, kopiert aber auch nicht die Datei an die angegebene Stelle.
Gruß, sole2202
-
versuch mal:
pfad = "C:\\Konto\\Dateien\\kunde\\geloescht\\" + kunde.kuNummer + ".txt"; pfad2 = "C:\\Konto\\Dateien\\kunden\\geloescht\\" + kunde.kuNummer + ".txt";
-
Habe ich gerade probiert. Es bringt leider nichts.
-
gibt denn 'kunde.kuNummer' auch einen string zurück?
-
Klar. Ich könnte doch sonst keine Zahl in einen String schreiben.
-
das sollte eigentlich klappen:
#include <string> #include <windows.h> int main() { std::string pfad, pfad2, befehl; pfad = ("C:\\Konto\\Dateien\\kunde\\geloescht\\")+kunde.kuNummer+(".txt"); pfad2 = ("C:\\Konto\\Dateien\\kunden\\geloescht\\")+kunde.kuNummer+(".txt"); befehl = ("copy ")+pfad+(" ")+pfad2; std::system(befehl.c_str()); }
-
Habe ich jetzt auch probiert. In der Kommandobox kommt nach der Ausführung: Syntaxfehler. Und es passiert nichts. Was kann ich da tun?
-
dann schau mal was hier passiert:
#include <string> #include <windows.h> int main() { std::string pfad, pfad2, befehl, datei=kunde.kuNummer;
und ob das dann geht:
pfad = ("C:\\Konto\\Dateien\\kunde\\geloescht\\")+datei+(".txt"); pfad2 = ("C:\\Konto\\Dateien\\kunden\\geloescht\\")+datei+(".txt"); befehl = ("copy ")+pfad+(" ")+pfad2; std::system(befehl.c_str()); }
-
Autsch, system für sowas?
Warum nicht einfach std::rename zum Verschieben?
-
also
rename (pfad.c_str(), pfad2.c_str());
? Da passiert leider auch nichts!
Aber das andere muss doch auch irgendwie hinbekommen zu sein.
-
sole2202 schrieb:
also
rename (pfad.c_str(), pfad2.c_str());
? ...
#include <stdio.h> int rename(const char *oldpath, const char *newpath);
-
Und wieso funktioniert meins nicht? Könnte mir das mal jemand erklären?
-
installiere mal den MinGW und schau mal obs damit geht. irgendwas scheint einfach bei deinem vc6 verhauen zu sein.