I. Envoyer des fichiers dans la corbeille▲
Par exemple nous allons envoyer tous les fichiers textes « *.txt » du dossier « C:\\tmp » dans la corbeille à l'aide de la fonction SHFileOperation :
#include
<shellapi.h>
//................................
SHFILEOPSTRUCT FileOpStr;
ZeroMemory(&
FileOpStr, sizeof
(FileOpStr));
FileOpStr.hwnd =
Application->
Handle;
FileOpStr.fFlags =
FOF_ALLOWUNDO;
FileOpStr.wFunc =
FO_DELETE;
FileOpStr.pFrom =
"C:
\\
tmp
\\
*.txt
\0
"
;
SHFileOperation(&
FileOpStr);
Cette fonction peut aussi servir à renommer, copier, déplacer des fichiers.
FileOpStr.wFunc: FO_RENAME, FO_COPY, FO_MOVE. Dossier de destination : FileOpStr.pTo = « C:\\ici »
Les chaînes pointées par FileOpStr.pFrom et FileOpStr.pTo peuvent contenir plusieurs fichiers ils doivent être séparer par des caractères NULL '\0' et les chaînes doivent se terminer par un double '\0'.
Les chaînes contenant les noms de fichiers doivent contenir des chemins complets.
Exemple
Copie du dossier Source et tout son contenu dans le dossier Destination :
#include
<shellapi.h>
//................................
SHFILEOPSTRUCT FileOpStr;
ZeroMemory(&
FileOpStr, sizeof
(FileOpStr));
FileOpStr.hwnd =
Application->
Handle;
FileOpStr.wFunc =
FO_COPY;
FileOpStr.pFrom =
"C:
\\
Source
\0
"
;
FileOpStr.pTo =
"C:
\\
Destination
\0
"
;
SHFileOperation(&
FileOpStr);
Déplacement des fichiers du dossier Source dans le dossier Destination :
#include
<shellapi.h>
//................................
SHFILEOPSTRUCT FileOpStr;
ZeroMemory(&
FileOpStr, sizeof
(FileOpStr));
FileOpStr.hwnd =
Application->
Handle;
FileOpStr.wFunc =
FO_MOVE;
FileOpStr.pFrom =
"C:
\\
Source
\\
*.*
\0
"
;
FileOpStr.pTo =
"C:
\\
Destination
\0
"
;
SHFileOperation(&
FileOpStr);