本ページには広告が含まれています。
指定したドライブまたはネットワーク共有上で、ユーザーが利用可能な空き領域の量を返します。
- 構文
- Double = Drive.FreeSpace
- 引数
- 戻り値
- 指定したドライブの空き容量(バイト単位)
Drive オブジェクトを返すメソッド・プロパティ
- FSO.FreeSpace
- 指定したパスのドライブに対応するFSO.FreeSpaceを返します。
- FSO.Drives プロパティ
- コンピューター上のすべてのFSO.FreeSpaceを格納したDrivesコレクション返します。
- File.Drive プロパティ
- 指定したファイルがあるFSO.FreeSpaceを返します。
使い方
Cドライブの空き容量を取得します。
DIM FSO = CREATEOLEOBJ("Scripting.FileSystemObject")
DIM Drive = FSO.GetDrive("C")
PRINT Drive.FreeSpace + "Bytes"
- 結果
31347015680Bytes
Drive.FreeSpace プロパティはバイト単位の値を返すため、適切な単位に合わせる場合はFreeSpace関数 (自作関数)を使います。
DIM FSO = CREATEOLEOBJ("Scripting.FileSystemObject")
DIM Drive = FSO.GetDrive("C")
DIM size = Drive.FreeSpace
PRINT size + "Bytes"
PRINT formatBytes(size)
- 結果
31346110464Bytes 29.19GB
プログラム実行例
すべてのドライブの情報を取得
DIM FSO = CREATEOLEOBJ("Scripting.FileSystemObject")
DIM Drives = FSO.Drives
DIM types[] = "不明", "リムーバブルドライブ", "ハードディスク", "ネットワークドライブ", "CD-ROM", "RAMドライブ"
FOR Drive IN Drives
WITH Drive
IFB .IsReady = TRUE THEN
PRINT "空き容量:" + formatBytes(.AvailableSpace)
PRINT "ドライブ文字:" + .DriveLetter
PRINT "種類:" + types[.DriveType]
PRINT "ファイルシステム:" + .FileSystem
PRINT "空き容量:" + formatBytes(.FreeSpace)
PRINT "準備状態:" + .IsReady
PRINT "パス:" + .Path
PRINT "ルートフォルダ:" + .RootFolder
PRINT "シリアルナンバー:" + .SerialNumber
PRINT "ネットワーク共有名:" + .ShareName
PRINT "ネットワーク共有のサイズ:" + formatBytes(.TotalSize)
PRINT "ボリューム名:" + .VolumeName
ENDIF
ENDWITH
PRINT "----------"
NEXT
//////////////////////////////////////////////////
// 【引数】
// size : バイト単位で示されるデータサイズの値
// digits : 小数点以下の桁数
// unit : 変換後のデータサイズの単位。Bytes、KB、MB、GB、TB、PB、EB、ZB、YBのいずれかを指定。省略した場合は自動的に選択されます。
// 【戻り値】
//
//////////////////////////////////////////////////
FUNCTION formatBytes(size, digits = 2, unit = "")
HASHTBL prefixes
prefixes[0] = "Bytes"
prefixes[1] = "KB"
prefixes[2] = "MB"
prefixes[3] = "GB"
prefixes[4] = "TB"
prefixes[5] = "PB"
prefixes[6] = "EB"
prefixes[7] = "ZB"
prefixes[8] = "YB"
DIM i = 0
WHILE (unit <> "" OR size >= 1024) AND prefixes[i] <> unit
size = size / 1024
i = i + 1
WEND
RESULT = TRIM(FORMAT(size, LENGTH(size), digits)) + IIF(size <> 0 AND INT(size) = size, "." + strRepeat("0", digits), "") + prefixes[i]
FEND
//////////////////////////////////////////////////
// 【引数】
// expr : 評価する式
// truepart : 評価した式がTrueのときに返す値
// falsepart : 評価した式がFalseのときに返す値
// 【戻り値】
// truepart : 評価した式がTrueのとき、falsepart : 評価した式がFalseのとき
//////////////////////////////////////////////////
FUNCTION IIF(expr, truepart, falsepart)
IFB EVAL(expr) THEN
RESULT = truepart
ELSE
RESULT = falsepart
ENDIF
FEND
//////////////////////////////////////////////////
// 【引数】
// inputs : 繰り返す文字列
// multiplier : inputsを繰り返す回数
// 【戻り値】
// inputsをmultiplier回を繰り返した文字列を返します
//////////////////////////////////////////////////
FUNCTION strRepeat(inputs, multiplier)
DIM res = ""
FOR n = 1 TO multiplier
res = res + inputs
NEXT
RESULT = res
FEND
結果
空き容量: 28.79GB
ドライブ文字: C
種類: ハードディスク
ファイルシステム: NTFS
空き容量: 28.79GB
準備状態: True
パス: C:
ルートフォルダ: C:\
シリアルナンバー: -266948359
ネットワーク共有名:
ネットワーク共有のサイズ: 150.00GB
ボリューム名: S3A9247D001
----------
空き容量: 63.92GB
ドライブ文字: D
種類: ハードディスク
ファイルシステム: NTFS
空き容量: 63.92GB
準備状態: True
パス: D:
ルートフォルダ: D:\
シリアルナンバー: 340155053
ネットワーク共有名:
ネットワーク共有のサイズ: 523.75GB
ボリューム名: DATA
----------
空き容量: 98.52GB
ドライブ文字: E
種類: リムーバブルドライブ
ファイルシステム: exFAT
空き容量: 98.52GB
準備状態: True
パス: E:
ルートフォルダ: E:\
シリアルナンバー: -361583784
ネットワーク共有名:
ネットワーク共有のサイズ: 116.55GB
ボリューム名:
----------
空き容量: 0.00Bytes
ドライブ文字: F
種類: CD-ROM
ファイルシステム: UDF
空き容量: 0.00Bytes
準備状態: True
パス: F:
ルートフォルダ: F:\
シリアルナンバー: -100688574
ネットワーク共有名:
ネットワーク共有のサイズ: 4.36GB
ボリューム名: KANOUSO_R
----------
空き容量: 43.81GB
ドライブ文字: N
種類: ネットワークドライブ
ファイルシステム: NTFS
空き容量: 43.81GB
準備状態: True
パス: N:
ルートフォルダ: N:\
シリアルナンバー: 622466291
ネットワーク共有名: \\192.168.3.23\home
ネットワーク共有のサイズ: 3.50TB
ボリューム名: home
----------
空き容量: 2.30GB
ドライブ文字: P
種類: ハードディスク
ファイルシステム: NTFS
空き容量: 2.30GB
準備状態: True
パス: P:
ルートフォルダ: P:\
シリアルナンバー: 640742038
ネットワーク共有名:
ネットワーク共有のサイズ: 5.46TB
ボリューム名: WS200U3_20210210
----------
空き容量: 5.39TB
ドライブ文字: Q
種類: ハードディスク
ファイルシステム: NTFS
空き容量: 5.39TB
準備状態: True
パス: Q:
ルートフォルダ: Q:\
シリアルナンバー: -692843773
ネットワーク共有名:
ネットワーク共有のサイズ: 7.28TB
ボリューム名: WS200U3_20221118
----------
使用関数
Cドライブの空き容量を割合で取得
Cドライブの空き容量を小数点以下第2位までの百分率(単位:%)で出力します。
DIM FSO = CREATEOLEOBJ("Scripting.FileSystemObject")
DIM Drive = FSO.GetDrive("C")
WITH Drive
PRINT ROUND(.FreeSpace / .TotalSize * 100, -2) + "%"
ENDWITH
結果
19.47%
使用関数
解説
関連記事
- FileSystemObject オブジェクト
- FSO.Drives プロパティ
- コンピューター上のすべてのFSO.FreeSpaceを格納したDrivesコレクション返します。
- Drive.DriveLetter プロパティ (FSO)
- ローカル ドライブまたはネットワーク共有を識別する 1 つの大文字のアルファベットを返します。
- Drive.FileSystem プロパティ (FSO)
- 指定したドライブで使用されているファイル システムを返します。
- Drive.VolumeName プロパティ (FSO)
- 指定したドライブのボリューム名を取得または設定します。