CopyFile Funktion in C?



  • 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...


Anmelden zum Antworten