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. USB设备连接
- 3. Windows中USB设备的路径
- 4. 外接USB设备到Android手机?
- 5. 通过USB连接到Android设备
- 6. 确定USB设备文件路径
- 7. 获取连接到Windows CE的USB驱动器名称设备
- 8. 如何通过USB连接Android设备到数码相机?
- 9. 将usb设备连接到android gphone主机
- 10. 连接USB设备时的响应
- 11. 如何将iOS设备连接到自定义USB设备?
- 12. Linux USB设备路径的含义? (需要区分USB串行转换器)
- 13. 设备管理器无法找到Android调试USB连接
- 14. 查询OS X中USB设备的连接设备
- 15. Android设备特定的相机路径
- 16. 如何列出连接到Mac的USB端口的设备?
- 17. 没有USB连接的Android调试[设备不可连接]
- 18. 如何确定连接的USB设备是否为USB闪存?
- 19. 模拟设备通过USB连接
- 20. Android - 通过USB连接多台设备
- 21. 连接到路由器的设备的Wi-Fi信号信息
- 22. 如何检索连接到USB端口的USB设备的端口号?
- 23. 无法连接到Linux中的USB设备(Emotiv神经头戴式耳机)
- 24. 如何模拟文件作为USB设备连接到Linux中的虚拟机?
- 25. 从android到手机的USB连接
- 26. 在Windows CE设备上连接USB打印机
- 27. iPad相机连接套件与非存储USB设备通话?
- 28. Android主机:连接大容量存储USB设备
- 29. ASP.NET网页到设备连接到服务器的USB(COM)端口
- 30. 安卓工作室没有看到USB连接的设备
有没有办法知道设备的真实名称? - Shira(G:) - (我的DOK),不只是G:? – Shira 2010-12-14 13:31:14
我在这里编辑了我的答案。请检查一下。 – JCTLK 2010-12-15 03:40:33