Copier un dossier
Résolu
Lye
-
Lye -
Lye -
Bonjour, débutant en C, j'essaie de copier un dossier (que j'appelle test) dans un autre dossier (test2).
Le code :
fonction.c :
main.c :
La variable rep contient le chemin absolu du dossier que je veux copier (test).
Lors de l’exécution, aucun dossier n'est créé, je travaille via l'API Windows.
Le code :
fonction.c :
#include <windows.h>
#include <shellapi.h>
int CreationDossier(char* rep)
{
SHFILEOPSTRUCT shfo;
ZeroMemory(&shfo, sizeof(SHFILEOPSTRUCT));
shfo.hwnd = NULL;
shfo.wFunc = FO_COPY;
shfo.pFrom = "rep\\*";
shfo.pTo = "D:\\Dossier\\test2\\test\\*\0";
shfo.fFlags = FOF_NOCONFIRMMKDIR|FOF_NOCONFIRMATION;
SHFileOperation(&shfo);
return 0;
}
main.c :
if ..... CreationDossier(rep); ....
La variable rep contient le chemin absolu du dossier que je veux copier (test).
Lors de l’exécution, aucun dossier n'est créé, je travaille via l'API Windows.
A voir également:
- Copier un dossier
- Dossier appdata - Guide
- Impossible de supprimer un dossier - Guide
- Mettre un mot de passe sur un dossier - Guide
- Comment copier une vidéo youtube - Guide
- Super copier - Télécharger - Gestion de fichiers
1 réponse
Salut Lye,
Je n'ai jamais utilisé cette fonction. Selon la doc, elle renvoie un entier qui est un code d'erreur.
https://docs.microsoft.com/en-us/windows/win32/api/shellapi/nf-shellapi-shfileoperationa
Peux tu récupérer le retour de la fonction et voir quel est le code d'erreur renvoyé ?
Ligne 11 du écris
Cela ne serait pas plutôt
La doc Microsoft indique que cette fonction (qui a l'air toujours supportée) a été "remplacée", à partir de Windows Vista, par IFileOperation (que je ne connais pas plus que cela personnellement). C'est peut-être aussi une piste à creuser pour toi :-)
Dal
Je n'ai jamais utilisé cette fonction. Selon la doc, elle renvoie un entier qui est un code d'erreur.
https://docs.microsoft.com/en-us/windows/win32/api/shellapi/nf-shellapi-shfileoperationa
Peux tu récupérer le retour de la fonction et voir quel est le code d'erreur renvoyé ?
Ligne 11 du écris
shfo.pFrom = "rep\\*";, cela ne va pas mettre magiquement la chaîne pointée par le
char* repdans ce champ de la struct.
Cela ne serait pas plutôt
shfo.pFrom = repque tu veux faire ?
La doc Microsoft indique que cette fonction (qui a l'air toujours supportée) a été "remplacée", à partir de Windows Vista, par IFileOperation (que je ne connais pas plus que cela personnellement). C'est peut-être aussi une piste à creuser pour toi :-)
Dal
Je vais regarder pour IFileOperation merci pour l'info
EDIT : j'ai modifié le chemin : D:\\test2\\test\0, cela a fonctionné
Merci pour ton aide !