2010-03-20 54 views

回答

3

這很簡單。 閱讀文件夾/ dev/disk/by-path的內容。 此目錄中的文件是指向/ dev中設備文件的符號鏈接。 然後你可以找到一些關於這些的一般信息,使用gudev的單聲道端口 - 你可以得到一個here。 你也需要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 

在新線上的每個器件。所以按/ n分割並按空格分割。之後的任何事情都很簡單,我不認爲我需要繼續。

相關問題