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:
}
上記のコードは、さまざまな特殊ファイルを識別するのに役立ちます。
UnixFileInfoとUnixDirectoryInfoの両方がテスト前にシンボリック リンクを解決するため、 UnixSymbolicLinkInfoの使用は重要です。