お知らせ

電子会議

ライブラリ

パレット

Delphi FAQ検索

Delphi FAQ一覧

サンプル蔵





FDelphi FAQ
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