CopyFile Funktion in C?
-
Hey Leute ich habe mich heute schon halbtod gegoogelt und bin weiterhin erfolglos
Ich schreibe gerade ein Programm, welches ein Script erstellt und für dieses Script wird eine weitere Datei benötigt welche ich von dem Ordner in dem das Programm liegt in einen festgelegten Ordner kopieren möchte.
Alles in einen String zu lesen und dann in ein File zu schreiben fällt aus, da diese Datei über 300 000 Zeichen hat
In C++ gibt es ja die Methode Copy.File() jz wollte ich fragen, ob es so eine ähnliche Funktion auch für unser geliebtes C gibt?
Oder hat jemand eine Header-Datei welche so einen ähnlichen Vorgang möglich macht?Mfg
-
Selbst ist der Programmierer.
Mach es zeichenweise mit fgetc, fputc oder blockweise mit fread, fwrite.
-
Was meinst du hier mit C++? C++ hat natürlich keine solche Funktion. Das ist eine Win32 Api Funktion und kann genauso aus C aufgerufen werden:
http://msdn.microsoft.com/en-us/library/windows/desktop/aa363851%28v=vs.85%29.aspx
Was mich immer wundert ist, dass die Leute zu faul sind, eine halbe Sekunde zu googeln und stattdessen Minuten verschwenden, um eine Frage in ein Forum zu posten.
-
Mechanics schrieb:
Was meinst du hier mit C++? C++ hat natürlich keine solche Funktion. Das ist eine Win32 Api Funktion und kann genauso aus C aufgerufen werden:
http://msdn.microsoft.com/en-us/library/windows/desktop/aa363851%28v=vs.85%29.aspx
Was mich immer wundert ist, dass die Leute zu faul sind, eine halbe Sekunde zu googeln und stattdessen Minuten verschwenden, um eine Frage in ein Forum zu posten.
Ich hasse es wenn Leute meinen Thread nicht lesen. Ich hab mich schon zu Tode gegoogelt aber einfach nichts brauchbares gefunden
Das Zeichenweise habe ich schon probiert aber es kopiert nicht alles ) :
Könntest du mir bitte erklären wie ich CopyFile benutzen kann?Ich habe CopyFile("update-binary", "Projekt\\script");
Es zweigt zwar keine Fehler an aber es kopiert auch sie Datei nicht
-
Ich habs gelesen, und ich glaube dir nicht, dass du nicht mit dem ersten Treffer zu "CopyFile" nicht auf der MSDN Seite landest. Und dann brauchst du nur lesen, was dransteht. Erstens passen die Parameter nicht, die Funktion erwartet laut Doku 3 Parameter und nicht 2. Und dann musst du schauen, was sie zurückgibt, vielleicht auch mal GetLastError auswerten.
-
-
Sorry ich wollte dich nicht angreifen (:
Habs auch schon mit CopyFile("datei", "Pfad", True); und mit CopyFile("datei", "Pfad", 0);
Auch kein Ergebniss
-
Dann ruf doch GetLastError auf und schau, was es zurückgibt.
-
Ich kann mir nur vorstellen dass der Pfad nicht stimmt oder der Dateiname nicht korrekt ist. Aber wie vom Vorposter bereits genannt verwende mal GetLastError...
Bezüglich deines Versuches die Dateien Zeichen für Zeichen zu kopieren, wäre es sinnvoll zu erfahren wie du dies bewerkstelligt hast, da es ja anscheinend nur die hälfte kopiert
Source-Code ist gewünscht ^^
Vorgehen kannst du ja so:
Datei a zum lesen und datei b zum schreiben öffnen
Aus a lesen und in b schreiben (zeichen lesen und gleich schreiben (insofern du nicht verschlüsselst oder die daten ändern möchtest)
Beide Dateien schliessen
Fertig
-
Alsoo das Zeichen für Zeichen hat einfach nicht funktioniert aber ich hab den Fehler beim CopyFile gefunden.
Ich hatte CopyFile("update-binary", "Projekt", FALSE);
Ich brauch aber CopyFile(".\\update-binary", ".\\Projekt\", FALSE);Jetzt bin ich aber zur nächsten Hürde gestossen.
Ich wollte beim Programmstart den Projekt Ordner löschen damit keine alten Dateien darin sind aber mit rmdir() und remove()funktioniert es nur wenn keine Dateien in den Unterordnern von Projekt sind.Jemand eine Idee wie ich das umgehen kann?
-
Indem Du Dir den Inhalt des Verzeichnisses holst und Element für Element löscht.
Diese Funktionalität ist ist aber abhängig vom Betriebssystem und Kompiler, die Du hier nicht nennst.
Zum Raten habe ich aber keine Lust.
Ratsam wäre es sich für den benutzten Kompiler und das betreffende OS die CRT an zuschauen.
-
Hey ich benutze Windows 7 und arbeite nit Code::Blocks samt GNU Compiler.
-
RTFM
EternalFame schrieb:
Hey ich benutze Windows 7 und arbeite nit Code::Blocks samt GNU Compiler.
Gut, dann weißt Du ja wovon Du die Doku lesen sollst...