C'est assez simple. Lit le contenu du dossier/dev/disk/by-path. Les fichiers de ce répertoire sont des liens symboliques vers des fichiers de périphériques dans/dev. alors vous pouvez trouver des informations générales à ce sujet, en utilisant un port mono de gudev - vous pouvez en obtenir un here. vous avez également besoin de glib-sharp pour l'utiliser, cela fait partie du paquetage gtk-sharp2 (installez cela en utilisant votre gestionnaire de paquets). utilisation comme dans cet exemple:
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
pour obtenir le point de montage, vous devez trouver le fichier de périphérique. ajoute une référence au package "Mono.Posix" et utilise la classe Mono.Unix.UnixSymbolicLinkInfo pour rechercher ce fichier. par exemple:
Mono.Unix.UnixSymbolicLinkInfo sym=new Mono.Unix.UnixSymbolicLinkInfo("/dev/disk/by-path/--some-file--");
Console.WriteLine(sym.ContentsPath); //Will output something like ../../sda1
remplacer le ../ ../dev et que lire le fichier/etc/mtab. le format du fichier est quelque chose comme ceci:
/dev/file mountpoint stuff-you-don't-care-about
Chaque appareil dans une nouvelle ligne. donc divisé par/n et diviser cela par l'espace. quoi que ce soit après c'est simple et je ne pense pas que je dois continuer.