簡體   English   中英

在Mono中檢測符號鏈接和管道

[英]Detecting symbolic links and pipes in Mono

有沒有辦法區分使用C#和Mono的符號鏈接和管道等特殊文件?

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

在挖掘了更多之后,我找到了解決方案。

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在測試之前解析了符號鏈接。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM