12

完全なパスでジャンクション ポイントが使用されているかどうかを簡単に確認したい。私はすでにフォルダーをテストする機能を持っていますが、すべてのサブフォルダーIsJunction()を呼び出さないための他の解決策があるかもしれません。IsJunction()

HasJunctionsInPath(string path)そこで、パスの各フォルダーをテストせずに、のような機能を探しています。

これを行うことができるものはありますか?

編集:

またはより良い...

ファイルまたはフォルダーの実際の場所を取得するために、パス内のすべてのジャンクションを解決することは可能ですか? これは私の問題をさらに解決し、結果を元のパスと比較してbool HasJunctionsInPath(string path)関数を実装することができます。

4

2 に答える 2

4

Jeff Brown のソリューションを見てください。

彼はあなたの機能を静的クラスに実装しましたが、それはうまく機能しているようです。

http://www.codeproject.com/KB/files/JunctionPointsNet.aspx

于 2011-08-01T23:58:35.450 に答える
2

私の知る限り、ジャンクションを処理したりポイントを直接再解析したりするための C# のすぐに使える実装はありません。

そのため、kernel32.dll との相互運用を行う必要があります。これは少し難しいですが、サンプルを見つけることができます。CreateFile() & DeviceIoControl() 呼び出しが必要です。

開始するのに適したサンプルを次に示します: http://www.codeproject.com/KB/vista/ReparsePointID.aspx?display=Print

便利な msdn リンク:

http://msdn.microsoft.com/en-us/library/cc232007%28PROT.13%29.aspx

http://msdn.microsoft.com/en-us/library/aa363858%28v=vs.85%29.aspx

http://msdn.microsoft.com/en-us/library/aa363216%28v=vs.85%29.aspx

http://social.msdn.microsoft.com/Forums/en-US/csharpgeneral/thread/7acd564f-0e9f-4295-8609-916af6675f0a

于 2011-02-09T13:08:56.190 に答える