Função que retorna o tamanho de uma pasta
02/04/2003
0
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
Posts
02/04/2003
Rafaela
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
02/04/2003
Carnette
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;
02/04/2003
Nildo
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 !
02/04/2003
Carnette
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á
Clique aqui para fazer login e interagir na Comunidade :)