Windows XPでNTFSジャンクションポイントを作成するにはどうすればよいですか?
デフォルトでは、Windows XPジャンクションポイントを作成するツールはありません。このツール(linkd
)は Windows Resource Kit Tools の一部です。
別のツールは、Mark Russinovichによる junction です。
Sysinternalsの junction ユーティリティを試してください。これはW2k +で利用できます
ジャンクションポイントの定義は、別のディレクトリにハードリンクされているディレクトリですか?
もしそうならそれは簡単です
mklink /J <new directory to be linked> <target directory>
この後、ディレクトリ間の区別はありません。それらは同じMFT_REFを持っています( http://en.wikipedia.org/wiki/NTFS_symbolic_link から)。
fsutil
は、再解析ポイントのクエリやハードリンクの作成にも役立ちます。
プログラムでこれを行う方法を知りたい場合は、ボリュームハンドルでNTFSストレージドライバーのIOCTL呼び出しを使用できます。しかし、mklink
を呼び出すだけの方が簡単です。
ターゲットディレクトリの書き込みと変更の権限が必要なことに注意してください。これを機能させるには、昇格したcmd.exeを実行する必要があります。
Link Shell ExtensionをGUI指向のインターフェースとして使用することもできます。 Windowsでジャンクション、ハードリンク、さらにはシンボリックリンクを作成することができますXP説明に従って木村正敏からNTFS 5フィルタードライバーをインストールした場合 http://schinagl.priv.at/ nt/hardlinkshellext/hardlinkshellext.html
Junction.exeの「ライブ」リンクは次のとおりです。
ディレクトリジャンクション:mklink /J <oldpath(link)> <newpath(target)>
newpath
を絶対的にすると、newpath
へのポインタを壊すことなくリンクを移動できます。 newpath
を相対化すると、移動する限り、リンクが壊れないようにすることができます[〜#〜]両方[〜#〜 ]リンクとターゲット[〜#〜]一緒に[〜#〜]およびそれらの相対パスを維持します。
特別なソフトウェアでNTFSジャンクションを作成できます。 Link Shell Extension(LSE) をお勧めします。フリーウェアで使いやすいです。また、すべてのステップのスクリーンショットを含む優れたドキュメントもあります。
ジャンクションポイントを作成するには
REPARSE_MOUNTPOINT_DATA_BUFFER* pReparseInfo = // ...
pReparseInfo->ReparseTag = IO_REPARSE_TAG_MOUNT_POINT;
// ...
DeviceIoControl(..., FSCTL_SET_REPARSE_POINTFSCTL_SET_REPARSE_POINT, pReparseInfo, ...
API呼び出し。 pReparseInfo
は、提供する必要があるREPARSE_MOUNTPOINT_DATA_BUFFER
構造を指します。
MSDN記事 には、ページの下部に、APIの使用方法を示すコミュニティ提供のコードスニペットがあります。