1 pièce(s) jointe(s)
Copieur de fichiers système pour sauvegarde avec SHFileOperation
Bonjour,
Je veux faire une sauvegarde des fichiers et répertoires du répertoire C:\Documents and Settings\Propriétaire\Local Settings\Temporary Internet Files vers un répertoire situé sur une autre partition. Je veux pouvoir faire 2 choses séparemment, donc 2 options
- Copier tout le contenu du répertoire C:\Documents and Settings\Propriétaire\Local Settings\Temporary Internet Files fichiers et répertoires sans aucune restriction sur le type fichiers ou d'attributs etc. une image complète !
- Copier certains fichiers du répertoire C:\Documents and Settings\Propriétaire\Local Settings\Temporary Internet Files sans les sous-répertoires ex: *.gif ou *.ico
J'ai trouvé la fonction SHFileOperation du Win32 API et j'ai écrit quelques lignes mais ça ne copie pas tous les fichiers et je me demande pourquoi.
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
|
function FileOperation(ASource,ADest:String):Boolean;
var
P: SHFILEOPSTRUCT;
begin
with P do
begin
Wnd := Application.Handle;
wFunc := FO_COPY;
pFrom := PChar(ASource + #0);
pTo := PChar(ADest + #0);
fFlags := FOF_RENAMEONCOLLISION or FOF_FILESONLY ;
end;
Result := (0 = ShFileOperation(P));
end; |
Appel de FileOperation() pour copier le répertoire au complet
Code:
1 2 3 4 5 6 7 8
|
procedure TForm1.Button1Click(Sender: TObject);
Const Src: string = 'C:\Documents and Settings\Propriétaire\Local Settings\Temporary Internet Files';
Const Dest: string = 'D:\Temp\';
begin
If NOT FileOperation(Src, Dest) then
MessageDlg('Copy error', mtInformation, [mbOk], 0);
end; |
Or ce qui est copié dans 'D:\Temp' n'est pas ce que Explorer me montre, il semble que ce que le programme voit ne soit pas ce que explorer me montre. Voir fichier jpg attaché. Est-ce possible ? J'ai pourtant pas fait d'erreur le chemin du répertoire.
Appel de FileOperation() pour copier certains fichiers, ce que j'aimerais faire
Code:
1 2 3 4 5 6 7
|
procedure TForm1.Button1Click(Sender: TObject);
Const Src: string = 'C:\Documents and Settings\Propriétaire\Local Settings\Temporary Internet Files\*.gif';
Const Dest: string = 'D:\Temp';
begin
FileOperation(Src, Dest);
end; |
Est-ce possible de faire une sauvegarde des fichiers et/ou dossiers systèmes avec Delphi 7 perso ?
OS: Windows XP sp3
Ver: Delphi 7 perso (trouvé sur ce site)
Merci pour vos suggestions.