3

有没有办法使用 C# 和 Mono 区分符号链接和管道等特殊文件?

该应用程序是一个多平台备份工具,因此我想避免使用互操作库或“C”dll,并寻找一个直接的托管代码解决方案。

4

1 回答 1

3

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

向项目添加对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在测试之前解析符号链接。

于 2013-10-17T19:16:15.760 回答