有没有办法区分使用C#和Mono的符号链接和管道等特殊文件?
该应用程序是一个多平台备份工具,因此我希望避免使用互操作库或“C”dll,并寻找直接的托管代码解决方案。
答案 0 :(得分: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 非常重要,因为 UnixFileInfo 和 UnixDirectoryInfo 在测试之前解析符号链接。