3
A
回答
4
基於從弗洛伊德粉紅我用這個link評論。這使我可以確定設備是否是外部設備。
public bool IsProjectOnExternalDisk(string driveLetter)
{
bool retVal = false;
driveLetter = driveLetter.TrimEnd('\\');
// browse all USB WMI physical disks
foreach (ManagementObject drive in new ManagementObjectSearcher("select DeviceID, MediaType,InterfaceType from Win32_DiskDrive").Get())
{
// associate physical disks with partitions
ManagementObjectCollection partitionCollection = new ManagementObjectSearcher(String.Format("associators of {{Win32_DiskDrive.DeviceID='{0}'}} " + "where AssocClass = Win32_DiskDriveToDiskPartition", drive["DeviceID"])).Get();
foreach (ManagementObject partition in partitionCollection)
{
if (partition != null)
{
// associate partitions with logical disks (drive letter volumes)
ManagementObjectCollection logicalCollection = new ManagementObjectSearcher(String.Format("associators of {{Win32_DiskPartition.DeviceID='{0}'}} " + "where AssocClass= Win32_LogicalDiskToPartition", partition["DeviceID"])).Get();
foreach (ManagementObject logical in logicalCollection)
{
if (logical != null)
{
// finally find the logical disk entry
ManagementObjectCollection.ManagementObjectEnumerator volumeEnumerator = new ManagementObjectSearcher(String.Format("select DeviceID from Win32_LogicalDisk " + "where Name='{0}'", logical["Name"])).Get().GetEnumerator();
volumeEnumerator.MoveNext();
ManagementObject volume = (ManagementObject)volumeEnumerator.Current;
if (driveLetter.ToLowerInvariant().Equals(volume["DeviceID"].ToString().ToLowerInvariant()) &&
(drive["MediaType"].ToString().ToLowerInvariant().Contains("external") || drive["InterfaceType"].ToString().ToLowerInvariant().Contains("usb")))
{
retVal = true;
break;
}
}
}
}
}
}
return retVal;
}
使用WMI Select * from Win32_LogicalDisk
在Royi納米爾的答案,並DriveInfo.DriveType
顯示我的外部類型「本地磁盤」我不能用它來確定驅動器是否是外部的。
4
你可以使用WMI 與
Select * from Win32_LogicalDisk
你有
Select Case .DriveType
Case 0
strDriveType = "Unknown"
Case 1
strDriveType = "No Root Directory"
Case 2
strDriveType = "Removable Disk"
Case 3
strDriveType = "Local Disk"
Case 4
strDriveType = "Network Drive"
Case 5
strDriveType = "Compact Disc"
Case 6
strDriveType = "RAM Disk"
End Select
+0
這與DriveInfo.DriveType具有相同的結果,我的外部USB驅動器顯示爲DriveType 3或「本地磁盤」 – Web 2012-03-27 16:07:14
相關問題
- 1. 確定驅動器是SAN
- 2. 檢查驅動器是否是主驅動器
- 3. 如何確定驅動器是否安裝了TrueCrypt?
- 4. 如何確定文件是否位於可移動驅動器或本地驅動器
- 5. NodeJS確定驅動器是否可移動
- 6. 如何檢測是否有任何特定的驅動器是硬盤驅動器?
- 7. 如何確定驅動器的類型?
- 8. 檢查是否存在windows驅動器
- 9. 如何在ASP .NET Datalist中設置驅動器是否已滿?
- 10. 是Windows Azure驅動器RTM?
- 11. 是否可以更改Azure臨時存儲驅動器的驅動器號?
- 12. 枚舉外部驅動器
- 13. MongoDB在外部驅動器
- 14. 外置驅動器盤符 - 備份
- 15. 如何確定JDBC驅動程序是否爲Type 4?
- 16. 驅動器選取器上傳到團隊驅動器而不是個人谷歌驅動器
- 17. 如何自動映射網絡驅動器,並檢查驅動器號是否正在使用
- 18. 如何阻止USB以阻止筆驅動器和外部硬盤驅動器
- 19. 確定CPU,內存或硬盤驅動器是否是Ruby腳本
- 20. 布爾檢查是否有任何驅動器包含特定的驅動器類型
- 21. 如何從驅動器的全名獲得驅動器盤符
- 22. 確定驅動器中有光盤
- 23. 確定網絡驅動器的協議
- 24. 從MDItemRef確定本地驅動器
- 25. 如何確保PostgreSQL驅動器是線程安全的
- 26. 確定驅動器的大小(驅動器上沒有文件系統)Win7
- 27. 篩選器驅動程序是否打算擴展系統驅動程序?
- 28. 驅動器api設置appProperties
- 29. Jmeter chrome驅動器配置
- 30. 設置驅動器VolumeLabel
谷歌搜索帶我到這裏 - http://social.msdn.microsoft.com/Forums/en-US/netfxbcl/thread/a3d4dbc7-c63a-46d5-a191-c73a4fca233a/ – 2012-03-27 14:50:12
你不能。通常情況下,驅動器的物理位置不能從物理接口獲得。我有帶外部SATA驅動器和內部USB驅動器的系統。也許未來的驅動器將包括GPS。 – HABO 2012-03-27 14:55:50