You can iterate the members of the
Drives collection as illustrated in the following code:
JScript
function ShowDriveList()
{
var fso, s, n, e, x;
fso = new ActiveXObject("Scripting.FileSystemObject");
e = new Enumerator(fso.Drives);
s = "";
for (; !e.atEnd(); e.moveNext())
{
x = e.item();
s = s + x.DriveLetter;
s += " - ";
if (x.DriveType == 3)
n = x.ShareName;
else if (x.IsReady)
n = x.VolumeName;
else
n = "[Drive not ready]";
s += n + "<br>";
}
return(s);
}
VBScript
Function ShowDriveList
Dim fso, d, dc, s, n
Set fso = CreateObject("Scripting.FileSystemObject")
Set dc = fso.Drives
For Each d in dc
n = ""
s = s & d.DriveLetter & " - "
If d.DriveType = 3 Then
n = d.ShareName
ElseIf d.IsReady Then
n = d.VolumeName
End If
s = s & n & "<BR>"
Next
ShowDriveList = s
End Function
PowerBASIC
FUNCTION ShowDriveList () AS STRING
LOCAL fso AS IFileSystem
LOCAL d AS IDrive
LOCAL dc AS IDriveCollection
LOCAL s AS STRING
LOCAL n AS STRING
LOCAL hr AS LONG
LOCAL v AS VARIANT
LOCAL penum AS IEnumVARIANT
fso = NEWCOM "Scripting.FileSystemObject"
dc = fso.Drives
penum = dc.NewEnum_
DO
hr = penum.Nex(1, v, BYVAL %NULL)
IF hr <> %S_OK THEN EXIT DO
d = v
v = EMPTY
s = s & ACODE$(d.get_DriveLetter) & " - "
IF d.DriveType = 3 THEN
n = ACODE$(d.ShareName)
ELSEIF d.IsReady THEN
n = ACODE$(d.VolumeName)
END IF
s = s & n & $CRLF
d = NOTHING
LOOP
FUNCTION = s
END FUNCTION