2013-10-17 55 views
3

有沒有辦法使用C#和Mono來區分象符號鏈接和管道這樣的特殊文件?檢測Mono中的符號鏈接和管道

該應用程序是一個多平臺的備份工具,所以我想避免使用互操作庫或'C'DLL,並尋找直接的託管代碼解決方案。

回答

2

經過深入挖掘,我發現了一個解決方案。

添加對的引用將Mono.Posix添加到項目中可以訪問某些Unix文件系統屬性。

Mono.Unix.UnixSymbolicLinkInfo i = new Mono.Unix.UnixSymbolicLinkInfo(path); 
switch(i.FileType) 
{ 
    case FileTypes.SymbolicLink: 
    case FileTypes.Fifo: 
    case FileTypes.Socket: 
    case FileTypes.BlockDevice: 
    case FileTypes.CharacterDevice: 
    case FileTypes.Directory: 
    case FileTypes.RegularFile: 
} 

上述代碼有助於識別一系列特殊文件。

使用UnixSymbolicLinkInfo是重要的,因爲UnixFileInfoUnixDirectoryInfo解決測試前的符號鏈接。