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
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
Curtir tópico
+ 0
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!
Aqui abaixo fiz as comparações, mas você pode utilizar da forma que você achar melhor!
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
Clique aqui para fazer login e interagir na Comunidade :)