Précédent   Forum du club des développeurs et IT Pro > Environnements de développement > Delphi > Langage
Langage Tout ce qui concerne le langage (POO, syntaxe, message d'erreur...)
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse
 
Outils de la discussion
Publicité
'
Vieux 14/12/2012, 18h34   #1
PiPo123
Nouveau Membre du Club
 
Inscription : août 2006
Messages : 139
Détails du profil
Informations forums :
Inscription : août 2006
Messages : 139
Points : 38
Points : 38
Par défaut 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
  1. 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 !
  2. 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.
Images attachées
Type de fichier : jpg Contenu de D Temp.jpg (22,7 Ko, 7 affichages)
PiPo123 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/12/2012, 14h24   #2
PiPo123
Nouveau Membre du Club
 
Inscription : août 2006
Messages : 139
Détails du profil
Informations forums :
Inscription : août 2006
Messages : 139
Points : 38
Points : 38
Bon, il semble que ce répertoire soit un peu spécial.

Voir http://ask-leo.com/what_are_those_st...net_files.html

donc quand je copiais le répertoire C:\Documents and Settings\Propriétaire\Local Settings\Temporary Internet Files je copiais la vrai structure du répertoire et quand je copiais les fichiers disons C:\Documents and Settings\Propriétaire\Local Settings\Temporary Internet Files\*.ico je n'avais presque rien car les fichiers sont dans les sous-répertoires cachés avec le fichier index.dat pour établir la liste de fichiers à afficher.

Si je copie à partir d'un des sous-répertoires disons
C:\Documents and Settings\Propriétaire\Local Settings\Temporary Internet Files\Content.IE5\7M6RAU39
alors j'ai un résultat normal donc il semble qu'il faudrait parcourir les sous-répertoires pour accéder aux fichiers.
PiPo123 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse
Outils de la discussion

Navigation rapide


Fuseau horaire GMT +2. Il est actuellement 04h15.


 
 
 
 
Partenaires

Hébergement Web