シンボリック リンクの作成

関数 CreateSymbolicLink を使用すると、絶対パスまたは相対パスを使用してシンボリック リンクを作成できます。

シンボリック リンクには、絶対リンクまたは相対リンクを指定できます。 絶対リンクは、パス名の各部分を指定するリンクです。相対リンクは、相対リンク指定子が指定されたパス内にある場所に対して相対的に決定されます。 相対リンクは、次の規則を使用して指定します。

  • ドット (. および ..) の規則 (例: ..\" は、親ディレクトリに対する相対パスを解決します。

  • スラッシュ (\) を持たない名前 ( "tmp" など) は、現在のディレクトリに対する相対パスを解決します。

  • ルート相対 - たとえば、"\Windows\System32" は "current drive:\Windows\System32" に解決されます。 directory

  • 現在の作業ディレクトリ相対 - たとえば、現在の作業ディレクトリが "C:\Windows\System32" の場合、"C:File.txt" は "C:\Windows\System32\File.txt" に解決されます。

    メモ 現在の作業ディレクトリの相対リンクを指定すると、現在の作業ディレクトリがユーザーとスレッドに基づいて処理されるため、絶対リンクとして作成されます。

シンボリック リンクには、ジャンクション ポイントとマウントされたフォルダーの両方をパス名の一部として含めることもできます。

シンボリック リンクは、UNC パスを使用してリモート ファイルまたはディレクトリを直接指すことができます。

相対シンボリック リンクは、1 つのボリュームに制限されます。

この例では、元のパスに絶対シンボリック リンクであるコンポーネント 'x' が含まれています。 'x' が検出されると、'x' までの元のパスのフラグメントは、'x' が指すパスに完全に置き換えられます。 'x' の後のパスの残りの部分は、この新しいパスに追加されます。 これが変更されたパスになります。

X: "C:\alpha\beta\absLink\gamma\file"

リンク: "absLink" は "\\machineB\share" にマップされます

変更されたパス: "\\machineB\share\gamma\file"

この例では、元のパスにコンポーネント 'x' が含まれています。これは相対シンボリック リンクです。 'x' が検出されると、'x' は 'x' が指す新しいフラグメントに完全に置き換えられます。 'x' の後のパスの残りの部分は、新しいパスに追加されます。 この新しいパスのドット (..) は、ドット (..) の前に表示されるコンポーネントを置き換えます。 ドットの各セットは、前のコンポーネントを置き換えます。 ドットの数 (..) がコンポーネントの数を超えると、エラーが返されます。 それ以外の場合、すべてのコンポーネントの置換が完了すると、最終的な変更されたパスが残ります。

X: C:\alpha\beta\link\gamma\file

リンク: "link" は にマップされます。\..\theta"

変更されたパス: "C:\alpha\beta\..\..\theta\gamma\file"

最終パス: "C:\theta\gamma\file"

シンボリック リンク

ハード リンクとジャンクション

ファイル、パス、名前空間の名前付け