Wie kann ich kopieren und einfügen einer Datei in Windows mit C++?
Ich habe gegoogelt, aber ich bin immer noch verwirrt darüber, wie es zu benutzen. Ich mache einen Datei-manager, und ich möchte in der Lage sein, t o kopieren und einfügen einer Datei in ein neues Verzeichnis. Ich weiß zu kopieren, die ich brauche, um zu verwenden file.copy()
, aber ich bin nicht sicher, wie es zu implementieren, in meinem code.
Ich möchte dies tun, mit fstream sind.
CopyFile
funktioniert, aber wie mache ich das mit fstream sind.Dann sollten Sie die Titel Ihrer Frage und geben Sie, dass in der Frage anstatt zu Fragen, zu kopieren und einfügen in windows...
InformationsquelleAutor | 2013-07-29
Du musst angemeldet sein, um einen Kommentar abzugeben.
Wenn Sie mit der Win32-API, prüfen, Blick in die Funktionen
CopyFile
oderCopyFileEx
.Können Sie die ersten in einer Weise, die der folgenden ähnelt:
Dies kopiert die Datei an den Inhalt
szFilePath
auf den InhaltszCopyPath
und zurückFALSE
wenn das kopieren nicht erfolgreich war. Um mehr darüber zu erfahren, warum die Funktion nicht, die Sie verwenden können, dieGetLastError()
Funktion und dann schauen Sie, bis die error codes in der Dokumentation von Microsoft.Nein, aber haben Sie sagen, Sie arbeiten "in Windows", das heißt, Sie haben Zugriff auf die Win32-API. Es gibt keine standard-C++ - wrapper, nicht die gleiche Sache
CopyFile/Ex()
tut. Wenn Sie möchten, eine Reine C++ - Lösung, die Sie erstellen müssen, und öffnen Sie die Zieldatei aus, und klicken Sie dann manuell in einer Schleife durch die source-Datei kopieren von bytes in die Zieldatei, wie das Nisarg und dieram3 zeigte. Nicht so effizient wie mit einem nativen OS-Lösung.Dies funktioniert nicht in Windows 2008 R2, aber es funktioniert in 2003. Warum?
InformationsquelleAutor Thomas Russell
istream_iterator<char>
oder besser nochistreambuf_iterator<char>
. Ebenfalls fürostream
.InformationsquelleAutor R3D3vil
http://msdn.microsoft.com/en-us/library/windows/desktop/aa363851(v=vs. 85).aspx
Ich weiß nicht, was du meinst mit kopieren und einfügen einer Datei; das macht keinen Sinn. Sie können kopieren Sie eine Datei an einen anderen Ort und ich nehme an, das ist, was Sie Fragen.
InformationsquelleAutor UpAndAdam
Hier ist meine Umsetzung, eine Datei zu kopieren, sollten Sie einen Blick in boost filesystem, da diese Bibliothek wird Teil der standard-c++ - Bibliothek.
Die Antwort auf das Nisarg sieht nett aus, aber diese Lösung ist langsam.
InformationsquelleAutor dieram3
In native C++, die Sie verwenden können:
InformationsquelleAutor elmadj
System::IO::File::Copy("Alter Pfad", "Neuer Pfad");
InformationsquelleAutor Ali