Tamanho de um arquivo?

03/12/2003

1

Alguem sabe como retornar o tamanho de um arquivo sem ter que abri-lo?

Marconi


Responder

Posts

03/12/2003

Nildo

Use o FindFirst:

function TamanhoArq(sArq: String): Integer;
var
srSearch: TSearchRec;
nRes: Integer;
begin
nRes := FindFirst(sArq, faAnyFile, srSearch);
if nRes = 0 then
Result := srSearch.Size;
end;


Responder

03/12/2003

Marconi

Nildo

Perfeito.

Funcionou OK.

Não abusando da sua boa-vontade.

Voce tem uma outra maneira de pegar a data do arquivo que não seja esta:
DateTimeToStr(FileDateToDateTime(FileGetDate(FHandle)));

Funciona, mas de vez em quando dá uns paus.

Obrigado

Marconi


Responder

03/12/2003

Nildo

Voce pode usar o mesmo esquema. Só que ao invez de .Size use o .Time:

function DataArq(sArq: String): TdateTime;
var
srSearch: TSearchRec;
nRes: Integer;
begin
nRes := FindFirst(sArq, faAnyFile, srSearch);
if nRes = 0 then
Result := srSearch.[b:6144fa0212]Time[/b:6144fa0212];
end;


Responder

04/12/2003

Marconi

Nildo

Por favor me dê mais uma ajuda.

Usando a última função, uma data que deveria ser ´04/12/2003´ aparece como ´05/01/21851´

Deve estar faltando alguma outra conversão para transforma-la em uma data comum.

Se voce souber, por favor me passe.

Marconi


Responder

04/12/2003

Marconi

Achei a solução:

é só substituir a linha

Result := srSearch.Time;
por
Result := FileDateToDateTime(srSearch.Time);

que funcionou legal

Muito Obrigado, mesmo.

Marconi


Responder

04/12/2003

Nildo

É que faltou um detalhe que percebí só agora!

function DataArq(sArq: String): TDateTime;
var
   srSearch: TSearchRec;
begin
   FindFirst( sArq, faAnyFile, srSearch);
   Result := FileDateToDateTime(srSearch.Time);
   sysUtils.FindClose(srSearch);
end;


Se funcionar me avisa!
t+


Responder