|
16番会議室「玉石混淆みんなで作るSample蔵」に寄せられたサンプル
"指定ディレクトリのサイズ取得"
みなさん、こんにちは。十兵衛です。
指定ディレクトリのサイズを取得します。
指定ディレクトリのみ、又は再帰処理を行なって指定ディレクトリ配下のサイズ
まで取得します。
※FAT32などで2Gbyte以上のディスクの場合Integerで表現出来そうに無いような
気がするので、Currency型を使うといいかもしれません(^^;
function GetDirectorySize(const ADir,AMask:string;
const AAttr:Integer;
const ARet:Boolean):Integer;
var
FDir:string;
FAttr,FRes,FSize:Integer;
FFile:TSearchRec;
begin
FSize := 0;
FAttr := AAttr;
if not IsDelimiter('\',ADir,Length(ADir)) then FDir := ADir + '\';
FRes := FindFirst(FDir+AMask,FAttr,FFile);
if FRes = 0 then begin
try
repeat
if (FFile.Attr and faDirectory) > 0 then begin
if (FFile.Name[1] <> '.') and ARet then
FSize :=
FSize + GetDirectorySize(FDir+FFile.Name,AMask,FAttr,ARet);
end else begin
FSize := FSize + FFile.Size;
end;
FRes := FindNext(FFile);
until FRes <> 0;
finally
FindClose(FFile);
end;
end;
Result := FSize;
end;
98/11/12(木) 01:15 十兵衛(BZT01311)
Original document by 十兵衛 氏 ID:(BZT01311)
ここにあるドキュメントは NIFTY SERVEの Delphi Users' Forum の16番会議室「玉石混淆みんなで作るSample蔵」に投稿されたサンプルです。これらのサンプルはボーランド株式会社がサポートする公式のものではありません。また、必ずしも動作が検証されているものではありません。これらのサンプルを使用したことに起因するいかなる損害も投稿者、およびフォーラムスタッフはその責めを負いません。使用者のリスクの範疇でご使用下さい。
Copyright 1996-2002 Delphi Users' Forum
|