1
A
回答
2
阿德曼的答案豎起大拇指。完善。 要添加一個微小的修改,我想添加修改它,你可以找到驅動器的類型。它應該迎合你的問題。
DriveInfo[] mydrives = DriveInfo.GetDrives();
foreach (DriveInfo mydrive in mydrives)
{
if (mydrive.DriveType == DriveType.Removable)
{
Console.WriteLine("\nRemovable disk");
Console.WriteLine("Drive: {0}", mydrive.Name);
Console.WriteLine("Type: {0}", mydrive.DriveType);
}
else
{
Console.WriteLine("\nNon Removable disk\n");
Console.WriteLine("Drive: {0}", mydrive.Name);
Console.WriteLine("Type: {0}", mydrive.DriveType);
}
}
或者,如果你想獲得驅動器名稱,你也可以這樣做。請注意,這些是來自網絡的例子,以便特定作者應該獲得信用。我所做的是使用這些代碼片段創建一個完整的程序,以便您能夠理解。
[DllImport("kernel32.dll", CharSet = CharSet.Auto)]
static extern bool GetVolumeInformation(string Volume, StringBuilder VolumeName, uint VolumeNameSize,out uint SerialNumber, out uint SerialNumberLength, out uint flags,StringBuilder fs, uint fs_size);
首先按照原樣寫入該功能。它使用kernel32.dll來檢索驅動器信息。 然後在主函數中,你可以簡單地添加這些代碼(如果它是一個控制檯應用程序,或者如果你有一個GUI做適當的。)
uint serialNum, serialNumLength, flags;
StringBuilder volumename = new StringBuilder(256);
StringBuilder fstype = new StringBuilder(256);
bool ok = false;
//Cursor.Current = Cursors.WaitCursor;
foreach (string drives in Environment.GetLogicalDrives())
{
ok = GetVolumeInformation(drives, volumename, (uint)volumename.Capacity - 1, out serialNum,
out serialNumLength, out flags, fstype, (uint)fstype.Capacity - 1);
if (ok)
{
Console.WriteLine("\n Volume Information of " + drives + "\n");
Console.WriteLine("\nSerialNumber of is..... " + serialNum.ToString() + " \n");
if (volumename != null)
{
Console.WriteLine("VolumeName is..... " + volumename.ToString() + " \n");
}
if (fstype != null)
{
Console.WriteLine("FileType is..... " + fstype.ToString() + " \n");
}
}
ok = false;
}
我想這應該是你一個完整的答案。
2
DriveInfo[] mydrives = DriveInfo.GetDrives();
foreach (DriveInfo mydrive in mydrives)
{
Console.WriteLine("Drive: {0}", mydrive.Name);
Console.WriteLine("Type: {0}", mydrive.DriveType);
}
此代碼將遍歷每個驅動器,您將看到您的USB驅動器將出現。 DriveType
將顯示爲Removable
而不是USB
,只是爲了讓您知道。
有關DriveType的更多信息。
0
或者你也可以做這樣的事情(在我的例子,我更新驅動器列表到組合框):
drives = DriveInfo.GetDrives().Where(drive => drive.IsReady && drive.DriveType == DriveType.Removable).ToArray();
if (drives.Length == 0)
{
drivesBox.Items.Add("No USB Stick found.");
formatButton.Enabled = false;
}
else
{
foreach (DriveInfo drive in drives)
{
drivesBox.Items.Add(drive.VolumeLabel + " (" + drive.Name + ")");
}
formatButton.Enabled = true;
}
相關問題
- 1. 如何查找USB設備連接的開發路徑?
- 2. windows - 如何枚舉所有連接的USB設備的設備路徑?
- 3. USB設備連接
- 4. 從連接的USB設備
- 5. 連接usb外設到android設備
- 6. Windows中USB設備的路徑
- 7. 如何檢測連接到Android手機的USB設備
- 8. 連接到Android手機的外部USB設備
- 9. 外接USB設備到Android手機?
- 10. 將USB主機橋接到設備
- 11. 將USB設備連接到Android
- 12. 通過USB連接到Android設備
- 13. 從USB設備的設備路徑獲取卷名稱
- 14. 連接usb到uart設備到android設備> 3.1
- 15. 確定USB設備文件路徑
- 16. 獲取連接到Windows CE的USB驅動器名稱設備
- 17. 將usb設備連接到android gphone主機
- 18. 如何通過USB連接Android設備到數碼相機?
- 19. 檢測某個連接的USB設備
- 20. 連接USB設備時的響應
- 21. 在USB連接的設備上調試
- 22. 如何區分連接到同一USB集線器的相同USB設備?
- 23. 連接到android手機的USB主機設備是否必須是arduino?
- 24. 如何將iOS設備連接到自定義USB設備?
- 25. ios:主機和USB連接設備之間的通信
- 26. Linux USB設備路徑的含義? (需要區分USB串行轉換器)
- 27. 什麼USB設備連接到USB端口
- 28. 設備管理器無法找到Android調試USB連接
- 29. 將USB設備連接到Android模擬器?
- 30. 查詢OS X中USB設備的連接設備
有沒有辦法知道設備的真實名稱? - Shira(G:) - (我的DOK),不只是G:? – Shira 2010-12-14 13:31:14
我在這裏編輯了我的答案。請檢查一下。 – JCTLK 2010-12-15 03:40:33