本ページには広告が含まれています。
コンピューター上のすべてのFSO.Drives プロパティを格納したDrivesコレクション返します。
- 構文
- Drive = FileSystemObject.Drives
- 引数
プログラム実行例
すべてのドライブの情報を取得

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
----------
使用関数
コンピュータ上のすべてのドライブ文字を返す
DIM FSO = CREATEOLEOBJ("Scripting.FileSystemObject")
DIM Drives = FSO.Drives
FOR Drive IN Drives
PRINT Drive.DriveLetter
NEXT
結果
C
D
F
使用関数
解説
関連記事
- FileSystemObject オブジェクト
- Drive.DriveLetter プロパティ (FSO)
- ローカル ドライブまたはネットワーク共有を識別する 1 つの大文字のアルファベットを返します。
- Drive.FileSystem プロパティ (FSO)
- 指定したドライブで使用されているファイル システムを返します。
- Drive.FreeSpace プロパティ (FSO)
- 指定したドライブまたはネットワーク共有上で、ユーザーが利用可能な空き領域の量を返します。
- Drive.VolumeName プロパティ (FSO)
- 指定したドライブのボリューム名を取得または設定します。