I need to determine the type of a volume mounted on a Windows system - i.e.: Local Disk, CD/DVD, Network Volume, etc.
Since Volume(x).Type always returns special/folder regardless of the actual volume type, it’s pretty useless for this situation.
I need to determine the type of a volume mounted on a Windows system - i.e.: Local Disk, CD/DVD, Network Volume, etc.
Since Volume(x).Type always returns special/folder regardless of the actual volume type, it’s pretty useless for this situation.
Windows API: GetDriveType
Using Windows Functionality Suite:
FileProcessing.GetDriveType(root As FolderItem) As String
Thanks for the info, Paul.
Hmmm, seems like that should really be a part of the Xojo FolderItem framework so that we can have a single call for all platforms.
You can also get it by using OLEObject
Sub ShowDriveType(drvpath As String)
// Returns a value indicating the type of a specified drive.
//http://msdn.microsoft.com/en-us/library/aa243132%28v=vs.60%29.aspx
Dim fs As OLEObject
Dim d As OLEObject
Dim s, t As String
fs = New OLEObject("Scripting.FileSystemObject")
d = fs.GetDrive(drvpath)
If d.IsReady Then
Select Case d.DriveType
Case 0
t = "Unknown"
Case 1
t = "Removable"
Case 2
t = "Fixed"
Case 3
t = "Network"
Case 4
t = "CD-ROM"
Case 5
t = "RAM Disk"
End Select
s = "Drive " + d.DriveLetter + ": - " + t
MsgBox s
End If
fs = Nil
exception err as oleexception
msgbox err.message
End Sub