Bonjour à tous,

Je cherche à copier le contenu d'un répertoire vers un autre.

J'ai essayé plusieurs procédures CopyFiles différentes mais j'ai toujours un problème à l'ouverture du fichier From.

En fait, je me demandais... une fois qu'on est dans le répertoire From, comment on fait pour indiquer qu'il faut y copier tous le contenu vers le répertoire To ?

Voiçi une partie de mon code ... il faut mettre LZExpand dans les uses !

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
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
 
const
     dirGCS = 'C:\Sources Delphi perso\GCodes Sources\';
     dirBakGCS  =  'C:\Sources Delphi perso\Backup GCodes sources\';
 
procedure TFormPrincipale.p_CopyFile(FromFileName, ToFileName: string);
var
  FromFile, ToFile: File;
begin
  AssignFile(FromFile, FromFileName); { Assigne FromFile à FromFileName }
  AssignFile(ToFile, ToFileName);     { Assigne ToFile à ToFileName }
  Reset(FromFile);                    { Ouvre le fichier source }
  try
    Rewrite(ToFile);                  { Crée le fichier cible }
    try
      { copie le fichier si un nombre négatif est retourné }
      { propage l'exception }
      if LZCopy(TFileRec(FromFile).Handle, TFileRec(ToFile).Handle) < 0
        then
        raise EInOutError.Create('Erreur en utilisant LZCopy')
    finally
      CloseFile(ToFile);  { Ferme ToFile }
    end;
  finally
    CloseFile(FromFile);  { Ferme FromFile }
  end;
end;
 
//------------------------------------------------------------------------------
 
procedure TFormPrincipale.p_DateEtHeure;
begin
     heure := FormatDateTime('hh mm',Time);
     jour := FormatDateTime('dd mm yy',Date);
end;
 
//------------------------------------------------------------------------------
procedure TFormPrincipale.p_CreeRepertoire;
begin
   try
      p_DateEtHeure;
 
      DirDestJour := dirBakGCS+jour;
 
      if not DirectoryExists(DirDestJour) then
         begin
              ForceDirectories(DirDestJour+'\'+heure+'\');
              MessageDlg('Le répertoire '+ DirDestJour+'\'+heure+
              ' vient d''être créé', mtInformation, [mbOK], 0);
         end
      else
         if DirectoryExists(DirDestJour) then
            begin
                CreateDir(DirDestJour+'\'+heure+'\');
                MessageDlg('Le répertoire '+heure+' vient d''être créé',
                               mtInformation, [mbOK], 0);
            end;
   except
         raise Exception.Create('Impossible de créer C:\temp');
   end;
   DirDestJourHeure := DirDestJour+'\'+heure+'\';
end;
 
//------------------------------------------------------------------------------
 
procedure TFormPrincipale.BtnOkClick(Sender: TObject);
begin
     p_CreeRepertoire;
     p_CopyFile(dirGCS, DirDestJourHeure);
 
end;