Ir para conteúdo
Fórum Script Brasil
  • 0

Alterando Data E Hora De Um Arquivo


Micheus

Pergunta

A função faz uso da função SetFileTime da API Win32, a qual permite alterar as informações em questão.

function SetFileDateTime(FileName: string; CreateTime, ModifyTime, AcessTime: TDateTime): Boolean;
  function ConvertToFileTime(DateTime :TDateTime) :PFileTime;
  var
    FileTime :TFileTime;
    LFT: TFileTime;
    LST: TSystemTime;
  begin
    Result := nil;
    if DateTime > 0 then
    begin
      DecodeDate(DateTime, LST.wYear, LST.wMonth, LST.wDay);
      DecodeTime(DateTime, LST.wHour, LST.wMinute, LST.wSecond, LST.wMilliSeconds);
      if SystemTimeToFileTime(LST, LFT) then
        if LocalFileTimeToFileTime(LFT, FileTime) then
        begin
          New(Result);
          Result^ := FileTime;
        end;
    end;
  end;
var
  FileHandle: Integer;
  ftCreateTime,
  ftModifyTime,
  ftAcessTime: PFileTime;
begin
  Result := False;
  try
    ftCreateTime := ConvertToFileTime(CreateTime);
    ftModifyTime := ConvertToFileTime(ModifyTime);
    ftAcessTime  := ConvertToFileTime(AcessTime);
    try
      FileHandle := FileOpen(FileName, fmOpenReadWrite or fmShareExclusive);
      Result := SetFileTime(FileHandle, ftCreateTime, ftAcessTime, ftModifyTime);
    finally
      FileClose(FileHandle);
    end;
  finally
    Dispose(ftCreateTime);
    Dispose(ftAcessTime);
    Dispose(ftModifyTime);
  end;
end;

Como utilizar

1) Alterando todas as data/hora para a atual:

SetFileDateTime(<nome do arquivo>, Now, Now, Now);

2) Alterando apenas a data/hora de criação:

SetFileDateTime(<nome do arquivo>, Now, 0, 0);

3) Alterando apenas a data/hora de acesso e modificação:

SetFileDateTime(<nome do arquivo>, 0, StrToDate('20/01/2005'), StrToDate('18/01/2004'));

Link para o comentário
Compartilhar em outros sites

2 respostass a esta questão

Posts Recomendados

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,1k
    • Posts
      651,8k
×
×
  • Criar Novo...