CILコード用のIO抽象化ライブラリを構築していますが、NTFSの2つのフォルダ間の接続とハードリンクの違いを理解するのが困難です。
彼らは平等ですか?どのような違いを知る必要がありますか?
ベストアンサー1
NTFS結合ポイントは、事実上シンボリックリンクとして機能する再解析ポイントですが、絶対パスを介してローカルディレクトリを見つけることに制限されます。
あなたが持っていると仮定
C:\>mkdir a b
C:\>linkd b\c C:\a
何が起こると、カタログテーブルに名前C:\b
のカタログエントリが挿入されます。c
そのプロパティには$Reparse
、ターゲットへの接続ポイントであることを指定するデータが含まれていますC:\a
。
Windows 2000(再分析ポイントと結合ポイントが導入された場合)が再分析ポイントを検出すると、適切なハンドラに渡されました。この場合、下のパスにアクセスすると、結合ポイントC:\b\c
のハンドラがそのパスを置き換え、C:\b\c
そこC:\a
から通常のファイルシステム操作が続行されます。
他のタイプの再分析ポイントを傍受して処理するために、追加のファイルシステムフィルタをインストールできます。 Windows Vista、Server 2008以降には、NTFSの「シンボリックリンク」再解析ポイントのハンドラが付属しており、ファイル、ディレクトリ、絶対、または相手を指すことができます。 、ローカルまたはリモート - 他のシステムのシンボリックリンクと非常によく似ています。
また、NTFSはUNIXと同様にハードリンクもサポートしています。複数のディレクトリエントリが実際のファイルデータである同じ「inode」を指すことがあります。これは再分析ポイントとは関係ありません。ほとんどすべてのシステムでは、ファイルのみがハードリンクできます。ハードリンクされたディレクトリには危険があります。 (それに加えて、..
ハードリンクされたディレクトリエントリは何を指すべきですか?)