2010-03-20 5 views

Répondre

3

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.

Questions connexes