A voir également:
- Copier un dossier outlook dans mes documents
- Dossier appdata - Guide
- Comment enregistrer un mail dans mes documents - Guide
- Impossible de supprimer un dossier - Guide
- Mettre un mot de passe sur un dossier - Guide
- Comment copier une vidéo youtube - Guide
2 réponses
Bonjour,
Oublie la fonction system pour ce genre de fonction. Ce n'est absolument pas portable en plus d'être inefficace.
Source : https://c.developpez.com/faq/?page=Les-fichiers-et-les-dossiers
Cdlt,
Oublie la fonction system pour ce genre de fonction. Ce n'est absolument pas portable en plus d'être inefficace.
#include <stdio.h>
int copier_fichier(char const * const source, char const * const destination)
{
FILE* fSrc;
FILE* fDest;
char buffer[512];
int NbLus;
if ((fSrc = fopen(source, "rb")) == NULL)
{
return 1;
}
if ((fDest = fopen(destination, "wb")) == NULL)
{
fclose(fSrc);
return 2;
}
while ((NbLus = fread(buffer, 1, 512, fSrc)) != 0)
fwrite(buffer, 1, NbLus, fDest);
fclose(fDest);
fclose(fSrc);
return 0;
}
Source : https://c.developpez.com/faq/?page=Les-fichiers-et-les-dossiers
Cdlt,
dans le langage C lui même il n'y en a pas, par contre selon ton système tu peux utiliser les commandes systèmes à l'aide de :
http://www.cplusplus.com/reference/cstdlib/system/
par exemple sur windows, pour copier un dossier il y a la commande xcopy
xcopy "source" "destination" [options]
voir l'aide sur xcopy
(ouvre l'invite de commande windows avec
menu démarrer
exécuter...
tape :
cmd
clique sur ok
dans la fenêtre noire qui s'ouvre tape "help xcopy" et tu auras les instructions pour utiliser la commande.)
ça pourrait donner quelque chose comme :
string commande = "XCOPY \"C:\\Users\" \"K:\\My Vista Backup\" /D /E /C /R /I /K /Y ";
system(commande);
(dans la commande il y a des guillemets, alors il faut écrire \" au lieu de " pour pouvoir mettre les guillemets dans la chaine, de même il faut écrire \\ au lieu de \ pour les chemins de fichier)
Sinon il y a aussi des bibliothèques qui font ça (et qui font ça de manière "portable", c-à-d qui s'adaptent selon les système windows, mac unix, etc...) ) mais je n'en n'ai pas sous la main personnellement.
http://www.cplusplus.com/reference/cstdlib/system/
par exemple sur windows, pour copier un dossier il y a la commande xcopy
xcopy "source" "destination" [options]
voir l'aide sur xcopy
(ouvre l'invite de commande windows avec
menu démarrer
exécuter...
tape :
cmd
clique sur ok
dans la fenêtre noire qui s'ouvre tape "help xcopy" et tu auras les instructions pour utiliser la commande.)
ça pourrait donner quelque chose comme :
string commande = "XCOPY \"C:\\Users\" \"K:\\My Vista Backup\" /D /E /C /R /I /K /Y ";
system(commande);
(dans la commande il y a des guillemets, alors il faut écrire \" au lieu de " pour pouvoir mettre les guillemets dans la chaine, de même il faut écrire \\ au lieu de \ pour les chemins de fichier)
Sinon il y a aussi des bibliothèques qui font ça (et qui font ça de manière "portable", c-à-d qui s'adaptent selon les système windows, mac unix, etc...) ) mais je n'en n'ai pas sous la main personnellement.
donc il faut que j'appelle ta fonction copier_fichier avec comme paramètres les chemin du dossier a copier ?
Par exemple : copier_fichier("C:\\toto.txt","D:\\titi.txt");
Ceci créera un fichier titi.txt (dans le volume D), et sera la copie du fichier C:\toto.txt.