Copie avec shfileoperation

Contenu du snippet

Bonjour

Voici un exemple de l'utilisation de la fonction SHFileOperation de l'api windows.

La fonction renvoie true si ok, false sinon ainsi qu'un code d'erreur en cas de problème
ex:
1223 lors de copie sur une clé usb pleine (disque plein)

PB: j'ai eu beau chercher je n'ai trouvé aucune documentation sur les codes
d'erreurs et d'éventuel messages "en clair" correspondants...

Source / Exemple :


#include <ShellApi.h>

(...)

bool ForceCopyFile(AnsiString source, AnsiString cible, int * errcode)
{
   bool res;
   res = false;
   int cr;
   char fsource[MAX_PATH];
   char fcible[MAX_PATH];

  • errcode = 0;
fsource[MAX_PATH]; fcible[MAX_PATH]; memset(fsource, 0, sizeof(fsource)); memset(fcible, 0, sizeof(fcible)); SHFILEOPSTRUCT shf; shf.hwnd = Handle; //Handle de la fenêtre appelante //nb: chaînes avec 2 zéros terminaux ! sprintf(fsource, "%s", source.c_str()); sprintf(fcible, "%s", cible.c_str()); shf.wFunc = FO_COPY; shf.pFrom = fsource; shf.pTo = fcible; shf.fFlags=FOF_SILENT | FOF_NOCONFIRMATION; cr = SHFileOperation(&shf); if (cr==0) res = true; else
  • errcode=cr; //pas documenté ?
return res; }

A voir également

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.