IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage Delphi Discussion :

Copieur de fichiers système pour sauvegarde avec SHFileOperation


Sujet :

Langage Delphi

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Août 2006
    Messages
    247
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Août 2006
    Messages : 247
    Points : 106
    Points
    106
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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 régulier
    Profil pro
    Inscrit en
    Août 2006
    Messages
    247
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Août 2006
    Messages : 247
    Points : 106
    Points
    106
    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.

Discussions similaires

  1. Réponses: 14
    Dernier message: 20/11/2014, 15h48
  2. Réponses: 2
    Dernier message: 30/09/2009, 15h53
  3. Réponses: 3
    Dernier message: 03/08/2009, 11h16
  4. fichier Help pour Vb6 avec HTML helpWorkShop
    Par younes2303m dans le forum VB 6 et antérieur
    Réponses: 1
    Dernier message: 10/06/2006, 14h03
  5. Réponses: 3
    Dernier message: 25/01/2006, 17h54

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo