Это довольно просто.
Прочитайте содержимое папки / dev / disk / by-path.
Файлы в этом каталоге являются символическими ссылками на файлы устройств в / dev.
затем вы можете найти общую информацию о них, используя моно порт gudev - вы можете получить один здесь .
вам также нужен glib-sharp, чтобы использовать его, он является частью пакета gtk-sharp2 (установите его с помощью менеджера пакетов).
используйте как в этом примере:
GLib.GType.Init();
gudev.GUdevClient a=new gudev.GUdevClient(null);
gudev.GUdevDevice dev=a.QueryByDeviceFile("/dev/disk/by-path/--some-file--");
Console.WriteLine (dev.GetProperty("ID_FS_TYPE")); //will output the file system, eg. ntfs
Console.WrtieLine(dev.GetProperty("ID_FS_LABEL")); //will output the label of the disk
, чтобы получить точку монтирования, вы должны найти фактический файл устройства.
Добавьте ссылку на пакет «Mono.Posix» и используйте класс Mono.Unix.UnixSymbolicLinkInfo, чтобы найти этот файл.
например:
Mono.Unix.UnixSymbolicLinkInfo sym=new Mono.Unix.UnixSymbolicLinkInfo("/dev/disk/by-path/--some-file--");
Console.WriteLine(sym.ContentsPath); //Will output something like ../../sda1
замените ../ .. на / dev и затем прочитайте файл / etc / mtab.
формат файла примерно такой:
/dev/file mountpoint stuff-you-don't-care-about
Каждое устройство в новой строке. поэтому разделить на / п и разделить это на пробел. после этого все просто, и я не думаю, что мне нужно продолжать.