GARANTIR DESCONTO

Fórum Arquivo Mais Novo #357368

19/04/2008

0

Como verifico se um arquivo é mais novo ou mais velho que outro arquivo?

Achei alguns exemplos aqui no fórum para verificar se a data de um arquivo é [b:b6cc550e65]diferente[/b:b6cc550e65] de outro arquivo, mas isso não me resolve o problema.

Podes me ajudar?

Obrigado


Armindo

Armindo

Responder

Posts

19/04/2008

Brunog3

Encontrei essa função no site da devmedia mesmo
https://www.devmedia.com.br/articles/viewcomp.asp?comp=1125

Só fiz algumas modificações porque ela retornava a data como string, então eu mudei pra retornar como data mesmo e ai sim fiz as comparações!

function FileLastModified(const TheFile: string): TDateTime;
var
  FileH: THandle;
  LocalFT: TFileTime;
  DosFT: DWORD;
  FindData: TWin32FindData;
begin
  Result := 0;
  FileH := FindFirstFile(PChar(TheFile), FindData);
  if FileH <> INVALID_HANDLE_VALUE then
  begin
   Windows.FindClose(FileH) ;
   if (FindData.dwFileAttributes AND
       FILE_ATTRIBUTE_DIRECTORY) = 0 then
    begin
     FileTimeToLocalFileTime(FindData.ftLastWriteTime, LocalFT);
     FileTimeToDosDateTime(LocalFT,LongRec(DosFT).Hi, LongRec(DosFT).Lo);
     Result := FileDateToDateTime(DosFT);
    end;
  end;
end;


Aqui abaixo fiz as comparações, mas você pode utilizar da forma que você achar melhor!

procedure TForm1.Button1Click(Sender: TObject);
var
  D1, D2 : TDateTime;
begin
  D1 := FileLastModified(Edit1.Text);
  D2 := FileLastModified(Edit2.Text);
  if (D1 <> 0) or (D2 <> 0) then
    if D1 > D2 then
      ShowMessage(´A data de modificação do arquivo "´ + ExtractFileName(Edit1.Text)
       + ´" é maior´ + #13 + ´que a data do arquivo "´ + ExtractFileName(Edit2.Text) + ´!´)
      else if D1 = D2 then
      ShowMessage(´A data de modificação do arquivo "´ + ExtractFileName(Edit1.Text)
       + ´" é igual´ + 13 + ´que a data do arquivo "´ + ExtractFileName(Edit2.Text) + ´!´)
      else
      ShowMessage(´A data de modificação do arquivo "´ + ExtractFileName(Edit1.Text)
       + ´" é menor´ + #13 + ´que a data do arquivo "´ + ExtractFileName(Edit2.Text) + ´!´);
end;

procedure TForm1.SpeedButton1Click(Sender: TObject);
begin
  if OpenDialog1.Execute then
    Edit1.Text :=  OpenDialog1.FileName;
end;

procedure TForm1.SpeedButton2Click(Sender: TObject);
begin
  if OpenDialog1.Execute then
    Edit2.text :=  OpenDialog1.FileName;
end;



Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar