Comment puis-je copier et coller un fichier dans Windows à l'aide de C++?
J'ai cherché sur google, mais je suis encore confus sur la façon de l'utiliser. Je fais un gestionnaire de fichiers, et je veux être en mesure de t o copier et coller un fichier dans un nouveau répertoire. Je sais copier-je besoin pour utiliser file.copy()
, mais je ne suis pas sûr de la façon de la mettre en application dans mon code.
Je voudrais le faire à l'aide de fstream.
CopyFile
fonctionne, mais comment puis-je faire cela à l'aide de fstream.- Alors vous devriez changer le titre de votre question et de préciser que, dans la question au lieu de demander à copier coller dans windows...
Vous devez vous connecter pour publier un commentaire.
Si vous êtes à l'aide de l'API Win32, puis envisager de regarder dans les fonctions
CopyFile
ouCopyFileEx
.Vous pouvez utiliser la première d'une manière similaire à la suivante:
Cela va copier le fichier qui se trouve sur le contenu de
szFilePath
le contenu deszCopyPath
, et sera de retourFALSE
si la copie a échoué. Pour en savoir plus sur les raisons de la fonction a échoué, vous pouvez utiliser leGetLastError()
fonction et ensuite voir les codes d'erreur dans la Documentation de Microsoft.CopyFile/Ex()
n'. Si vous voulez purement C++ solution, vous devez le créer et ouvrir le fichier de destination, puis manuellement boucle à la source de la copie de fichier octets dans le fichier de destination, comme Nisarg et dieram3 a montré. Pas aussi efficace que l'utilisation d'un système d'exploitation natif de la solution.istream_iterator<char>
, ou mieux encoreistreambuf_iterator<char>
. De même pourostream
.http://msdn.microsoft.com/en-us/library/windows/desktop/aa363851(v=vs. 85).aspx
Je ne sais pas ce que tu veux dire par copier et coller un fichier; qui n'a pas de sens. Vous pouvez copier un fichier vers un autre emplacement et je suppose que c'est ce que vous me demandez.
Voici ma mise en œuvre de copier un fichier, vous devriez jeter un oeil à stimuler le système de fichier depuis la bibliothèque feront partie de la bibliothèque c++ standard.
La réponse de Nisarg a l'air sympa, mais cette solution est lente.
En C++ natif, vous pouvez utiliser:
Système::IO::File::Copy("Vieux Chemin", "Voie Nouvelle");