我需要确定该驱动器在Linux系统上是可移动的。我正在使用用C#编写的简单程序。在Win上,一切正常。但是,当我尝试在Ubuntu上通过Mono运行应用程序时遇到了麻烦,该应用程序无法识别可移动驱动器。我的第一个例子:
var drives = DriveInfo.GetDrives()
.Where(drive => drive.IsReady && drive.DriveType == DriveType.Removable);
foreach (var drive in drives)
{
Console.WriteLine(drive.Name);
Console.WriteLine(drive.DriveFormat);
Console.WriteLine("{0:0.##}", drive.TotalSize / 1073741824.00);
}
在Win上效果很好:
我的第二个示例是硬编码写入装载路径f.e:
var drives = DriveInfo.GetDrives()
.Where(drive => drive.IsReady && drive.Name == "/media/usb0"); // from usb0 to usb4
foreach (var drive in drives)
{
Console.WriteLine(drive.Name);
Console.WriteLine(drive.DriveFormat);
Console.WriteLine("{0:0.##}", drive.TotalSize / 1073741824.00);
}
它对我有用:
但是我认为硬编码路径是编程的非常不好的方法。 还有其他方法可以使用Mono在Linux上获得可移动驱动器吗?有什么建议吗?