Ir al contenido


Foto

[TRUCOS DELPHI] Cambiar la fecha de un Archivo.


  • Por favor identifícate para responder
1 respuesta en este tema

#1 sir.dev.a.lot

sir.dev.a.lot

    Advanced Member

  • Miembros
  • PipPipPip
  • 545 mensajes
  • Location127.0.0.1

Escrito 24 agosto 2016 - 11:13

[TRUCOS DELPHI] Cambiar la fecha de un Archivo.


delphi
  1. function SetFileDateTime(FileName : String; NewDateTime : TDateTime):
  2. Boolean;
  3. var
  4. FileHandle: Integer;
  5. FileTime: TFileTime;
  6. LFT: TFileTime;
  7. LST: TSystemTime;
  8. begin
  9. Result := False;
  10. Try
  11. DecodeDate(NewDateTime, LST.wYear, LST.wMonth, LST.wDay);
  12. DecodeTime(NewDateTime, LST.wHour, LST.wMinute,
  13. LST.wSecond,LST.wMilliSeconds);
  14. IF SystemTimeToFileTime(LST, LFT) Then
  15. begin
  16. IF LocalFileTimeToFileTime(LFT, FileTime) Then
  17. begin
  18. FileHandle := FileOpen(FileName, fmOpenReadWrite or
  19. fmShareExclusive);
  20. IF SetFileTime(FileHandle, NIL, NIL, @FileTime) Then
  21. Result := True;
  22. end;
  23. end;
  24. Finally
  25. FileClose(FileHandle);
  26. end;
  27. end;

Ejemplo de Uso:


delphi
  1. procedure TForm1.Button1Click(Sender: TObject);
  2. begin
  3. if OpenDialog1.Execute then
  4. begin
  5. if SetFileDateTime(OpenDialog1.Filename,now) then
  6. begin
  7. ShowMessage('Cambio de fecha realizado !');
  8. end;
  9. end;
  10. end;

Saludos!


  • 2

#2 escafandra

escafandra

    Advanced Member

  • Administrador
  • 4.107 mensajes
  • LocationMadrid - España

Escrito 24 agosto 2016 - 04:38

Quizás sea más interesante cambiar la fecha de creación del fichero. *-)

delphi
  1. function SetFileCreationDateTime(FileName : String; NewDateTime : TDateTime): Boolean;
  2. var
  3. FileHandle: Integer;
  4. FileTime: TFileTime;
  5. LFT: TFileTime;
  6. LST: TSystemTime;
  7. begin
  8. Result := false;
  9. Try
  10. DecodeDate(NewDateTime, LST.wYear, LST.wMonth, LST.wDay);
  11. DecodeTime(NewDateTime, LST.wHour, LST.wMinute, LST.wSecond,LST.wMilliSeconds);
  12. if SystemTimeToFileTime(LST, LFT) Then
  13. begin
  14. if LocalFileTimeToFileTime(LFT, FileTime) then
  15. begin
  16. FileHandle := FileOpen(FileName, fmOpenReadWrite or fmShareExclusive);
  17. Result:= SetFileTime(FileHandle, @FileTime, @FileTime, @FileTime);
  18. end;
  19. end;
  20. finally
  21. FileClose(FileHandle);
  22. end;
  23. end;

Saludos.
  • 2




IP.Board spam blocked by CleanTalk.