Je cherche à donner à un fichier B les mêmes dates qu'un fichier A.
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
var
   HandleSource, HandleDest: THandle;
   DateCreation, DateModification, DateAcces: TFileTime;
begin
   // Ouverture du fichier source.
   HandleSource := FileOpen(szFichierSource, fmOpenRead or fmShareDenyNone);
   try
      if HandleSource = 0 then
         Exit;
 
      // Récupération des dates du fichier source.
      if not GetFileTime(HandleSource, @DateCreation, @DateAcces, @DateModification) then
      begin
         szErreur := #9 + 'Erreur :  la récupération des dates du fichier source [' + szFichierSource + '] a échoué !' + #13#10#9 + SysErrorMessage(GetLastError);
         Exit;
      end;
   finally
      FileClose(HandleSource);
   end;
 
   // Ouverture du fichier destination.
   HandleDest := FileOpen(szFichierDest, fmOpenReadWrite or fmShareExclusive);
   try
      if HandleDest = 0 then
         Exit;
 
      // Modification des dates du fichier destination.
      if not SetFileTime(HandleDest, @DateCreation, @DateAcces, @DateModification) then
      begin
         szErreur := #9 + 'Erreur :  la modification des date du fichier destination [' + szFichierDest + '] a échoué !' + #13#10#9 + SysErrorMessage(GetLastError);
         Exit;
      end;
   finally
      FileClose(HandleDest);
   end;
Et j'obtiens une erreur sur SetFileTime:
Descripteur non valide
J'ai trouvé d'autres posts sur SetFileTime, mais je ne vois pas ce que j'ai mal fait (je suis sous D2010).

Une idée ?