Как я могу получить информацию о съемном диске в Linux (Mono)?
Мне нужно определить, что диск является съемным в системе Linux. Я использую простую программу, написанную на C#. На Win все отлично работает. Но когда я пытаюсь запустить приложение через Mono в Ubuntu, у меня возникает проблема, приложение не может распознать съемный диск. Мой первый пример:
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:
Мой второй пример - жестко закодированный путь монтирования записи fe:
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);
}
И это работает для меня:
Но я думаю, что жестко закодированный путь - очень плохой метод для программирования. Есть ли другие способы получить съемные диски в Linux с помощью Mono? Какие-либо предложения?