1

私の必要性は単純です。Windows ディレクトリ パスを指定すると、実際のパスだけが必要になります。用語が間違っていると確信しているので、例を挙げています。

C:\Documents and Settings\All Usersを指定すると、メソッドは次のように表示されます。

  • Windows 7では C:\ProgramData
  • Windows 2003の C:\Documents and Settings\All Users

これは、Windows 7 ではC:\Documents and SettingsがC:\Usersを参照するジャンクションであり、C:\Users\All Usersが実際のディレクトリであるC:\ProgramDataを参照するさらに別のジャンクションであるためです。

それで、私の質問は、どの .NET API でこれらすべてを実行できるかということです。

ありがとう。

4

1 に答える 1

1

すでに理解している人からのこのコードサンプルをチェックしてください。

基本的に、パラメータとしてを渡す P/Invoke 経由でWi​​n32 関数DeviceIoControlを使用する必要があります。FSCTL_GET_REPARSE_POINTdwIoControlCode

CodeProjectの人が言うように...

興味深いことに、.NET Framework の FileAttributes 列挙には値 FileAttributes.ReparsePoint が含まれていますが、Reparse Points に対するその他の組み込みサポートはありません。

これを行うための "ネイティブ" .NET API はありませんが、フレームワークの多くはとにかく P/Invoke 呼び出しの単なるラッパーであることを覚えておいてください。したがって、それらを恐れる必要はありません :)

于 2011-02-23T16:14:24.367 に答える