有没有办法使用 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很重要,因为UnixFileInfo和UnixDirectoryInfo在测试之前解析符号链接。