Publicité
+ Répondre à la discussion
Affichage des résultats 1 à 2 sur 2
  1. #1
    Membre du Club
    Inscrit en
    août 2006
    Messages
    166
    Détails du profil
    Informations forums :
    Inscription : août 2006
    Messages : 166
    Points : 44
    Points
    44

    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 Images attachées

  2. #2
    Membre du Club
    Inscrit en
    août 2006
    Messages
    166
    Détails du profil
    Informations forums :
    Inscription : août 2006
    Messages : 166
    Points : 44
    Points
    44

    Par défaut

    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.

Liens sociaux

Règles de messages

  • Vous ne pouvez pas créer de nouvelles discussions
  • Vous ne pouvez pas envoyer des réponses
  • Vous ne pouvez pas envoyer des pièces jointes
  • Vous ne pouvez pas modifier vos messages
  •