Função que retorna o tamanho de uma pasta

02/04/2003

0

Olá...
Alguem conhece alguma função do próprio Delphi, que retorna o tamanho de uma pasta (tem que incluir suas subpastas tambem) ? Ou se não existir, alguem tem uma função que retorna isso ?

Valew.. estou no aguardo


Nildo

Nildo

Responder

Posts

02/04/2003

Rafaela

Nildo tenho algumas dicas de Delphi aqui e não sei se vai te servir, mas estou passando, tomara q sirva:

Obter o nome, o caminho, a data, os atributos e o tamanho de um arquivo:

Para pegar o Nome:
FileDirName.Caption:= FileList.Items[FileList.ItemIndex];
Para pegar o Caminho:
FilePathName.Caption:= FileList.Directory;
Para pegar a Data:
ChangeDate.Caption:= DateTimeToStr(FileDateTime(FileList.FileName));
Para pegar os Atributos:
Attributes := FileGetAttr(FileDirName.Caption);
Para pegar o Nome e o Tamanho:
TheFileName: string;
TheFileName := Items[ItemIndex];
FilePanel.Caption := Format(´¬s, ¬d bytes´, [TheFileName,
GetFileSize(TheFileName)]);

Espero ter ajudado.......


Rafaela


Responder

02/04/2003

Carnette

Olá... Alguem conhece alguma função do próprio Delphi, que retorna o tamanho de uma pasta (tem que incluir suas subpastas tambem) ? Ou se não existir, alguem tem uma função que retorna isso ? Valew.. estou no aguardo


Tamanho de um Diretorio
function DirSize(Dir:string):integer;
{Retorna o tamanho de um diretório}
var
SearchRec : TSearchRec;
Separator : string;
DirBytes : integer;
begin
if Copy(Dir,Length(Dir),1)=´\´ then
begin
Separator := ´´;
end
else
begin
Separator := ´\´;
end;
if FindFirst(Dir+Separator+´*.*´,faAnyFile,SearchRec) = 0 then
begin
if FileExists(Dir+Separator+SearchRec.Name) then
begin
DirBytes := DirBytes + SearchRec.Size;
{Memo1.Lines.Add(Dir+Separator+SearchRec.Name);}
end
else if DirectoryExists(Dir+Separator+SearchRec.Name) then
begin
if (SearchRec.Name<>´.´) and (SearchRec.Name<>´..´) then
begin
DirSize(Dir+Separator+SearchRec.Name);
end;
end;
while FindNext(SearchRec) = 0 do
begin
if FileExists(Dir+Separator+SearchRec.Name) then
begin
DirBytes := DirBytes + SearchRec.Size;
{Memo1.Lines.Add(Dir+Separator+SearchRec.Name);}
end
else if DirectoryExists(Dir+Separator+SearchRec.Name) then
begin
if (SearchRec.Name<>´.´) and (SearchRec.Name<>´..´) then
begin
DirSize(Dir+Separator+SearchRec.Name);
end;
end;
end;
end;
FindClose(SearchRec);
end;


Responder

02/04/2003

Nildo

Valew rafaela, sua dica é boa, só que não tem nada que retorne o tamanho de uma pasta !

Carnette, a sua funciona valew... Por um acaso, você teria ae alguma função que comparasse duas pastas, e retornasse um LOG com as diferenças encontrada ? hehe valew ! Se você não tiver, avise pois vou comecar a fazer. Dae eu passo pra galera !


Responder

02/04/2003

Carnette

Valew rafaela, sua dica é boa, só que não tem nada que retorne o tamanho de uma pasta ! Carnette, a sua funciona valew... Por um acaso, você teria ae alguma função que comparasse duas pastas, e retornasse um LOG com as diferenças encontrada ? hehe valew ! Se você não tiver, avise pois vou comecar a fazer. Dae eu passo pra galera !


nao tenho não....mas, eu acho que é só fazer algo tipo assim:

varLOG := Abs(DirSize(pasta1) - DirSize(pasta2));

pelo meno a diferença vc já saberá


Responder

Assista grátis a nossa aula inaugural

Assitir aula

Saiba por que programar é uma questão de
sobrevivência e como aprender sem riscos

Assistir agora

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

Aceitar