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 !