System Befehl zum Kopieren und Löschen einer Datei
-
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.
-
sole2202 schrieb:
Und wieso funktioniert meins nicht? Könnte mir das mal jemand erklären?
Du solltest evtl. auch mal den Rückgabewert der Funktion prüfen.
Dass du die entsprechenden Rechte an der Datei und dem Verzeichnis haben musst, hast du auch sichergestellt?
-
Glaube mich daran erinnern zu können gehört zu haben das der system befehl unter windows den vollständigen pfad für die ausführbare .exe benötigt. das funktioniert dann natürlich nicht mit internen befehlen wie dir, copy usw. .
Du Könntest dir eine mv.bat datei anlegen und diese dann mit dem vollständigen pfad aufrufen.
Hoffe das hilft dir weiter.
Kurt
-
nein, nein...so wie ich den code schrieb hatte er bei mir ja funktioniert. irgendwo ist bei ihm der wurm drin.
-
sole2202 schrieb:
also
rename (pfad.c_str(), pfad2.c_str());
? Da passiert leider auch nichts!
Dann hast Du was falsch gemacht; was steht in pfad und pfad2?
Aber das andere muss doch auch irgendwie hinbekommen zu sein.
Ja, aber hier system einzusetzen ist eine echte Katastrophe.
-
enno-tyrant schrieb:
irgendwo ist bei ihm der wurm drin.
Ihr....
-
CarstenJ schrieb:
enno-tyrant schrieb:
irgendwo ist bei ihm der wurm drin.
Ihr....
was ist denn das für eine aussage? post++, ich schaffe heute noch die 3100?
begründe lieber deine aussage, oder besser noch: hilf ihm
-
Wenn er es schon für Win machen will, warum nimmt er dann nicht
CopyFile & DeleteFile ?Devil
-
Weil es rename in der Standardbibliothek gibt?