Bonjour,

J'ai créé une fonction pour copier une liste de fichiers d'un répertoire, vers un autre répertoire, en écrasant les anciens fichiers du répertoire de destination.

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
void __fastcall CopierFichiers(String rep_source, String rep_dest)
{
     SHFILEOPSTRUCT FileOpStr;
     ZeroMemory(&FileOpStr, sizeof(FileOpStr));
     FileOpStr.hwnd = Application->Handle;
     FileOpStr.fFlags = FOF_NOCONFIRMATION;
     FileOpStr.wFunc = FO_COPY;
     FileOpStr.pFrom = rep_source.c_str();
     FileOpStr.pTo = rep_dest.c_str();
     SHFileOperation(&FileOpStr);
}
Je l'utilise ainsi :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
CopierFichiers("C:\\Un rep bidon\\fichiers\\*.*", "E:\\Une destination");
J'ai beau changer le répertoire d'entrée, de sortie, les anti-slashs, étoiles, etc etc... A chaque fois, il me répond "Impossible de copier fichier : impossible de lire à partir du fichier source ou de la disquette".

Le plus étonnant, c'est que l'utilisation de cette fonction dans un autre programme fonctionnait SANS AUCUN PROBLEME, et que je réussisais bien à copier un répertoire et ses sous-répertoires dans un autre répertoire.

Que faire ? Auriez-vous des idées concernant ce problème ? Ou peut-etre connaissez-vous une autre fonction pour copier le contenu entier d'un répertoire dans un autre ?

Merci par avance !!