掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
ドライブの空き容量を取得するには? (ID:7688)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
こんにちは。 フォーム上に ・DriveComboBox1(TDriveComboBox) ・Label1(TLabel1) を配置して、下記のようにソースを組むのは如何でしょう。 Size が、ドライブの空き容量になります。 Integer 型だと 2GB までしか取得できませんが、 Extended 型だと正常取得できます。 1024 より大きい限りは 1024 で割っていくことで、単位をあわせています。 DiskFree で -1 が出力されるとドライブは存在しないので、その表示もしています。 単位を定義している場所の'TB'は、ちょっとした洒落のつもりです。 でも、10年後は洒落じゃなくなっているのでしょうね…。 procedure TForm1.DriveComboBox1Change(Sender: TObject); var Size : Extended; Fig : string; FigList : array[0..4] of string; i : Integer; begin //空き容量取得 Size:= DiskFree(Ord(DriveComboBox1.Drive)-64); //単位定義 FigList[0]:='Byte'; FigList[1]:='KB'; FigList[2]:='MB'; FigList[3]:='GB'; FigList[4]:='TB'; //単位変換 i:=0; while (Size>=1024) and (i<=4) do begin Size:= Size / 1024; Inc(i); end; Fig:= FigList[i]; //ラベルに表示 if Size>=0 then Label1.Caption:= Format('%4.1f %s',[Size, Fig]) else if Size=-1 then Label1.Caption:= 'Error: Drive is not found.' else Label1.Caption:= 'Error: ???'; end;
←解決時は質問者本人がここをチェックしてください。
戻る
掲示板システム
Copyright 2021 Takeshi Okamoto All Rights Reserved.