Downloadsにプロジェクト用ジャンクションを作る

Downloadsにプロジェクト用ジャンクションを作る

ショートカット、Windowsジャンクション、シンボリックリンク、ハードリンク、UNIXのリンク概念を比較しながら、プロジェクト用入口を安全に作る

Copyright © 2026 LWP 山中 一弘

本資料は、出典を明記いただければ、商用・非商用を問わず、ご自由に複製・改変・再配布していただけます。なお、著作権表示は改変せず、そのまま記載してご利用くださいますようお願いいたします。

記事要約

Windowsで仕事をしていると、実体のプロジェクトフォルダーがDropbox、Google Drive、別ドライブ、深い業務フォルダーの中にあることがあります。人間が毎回そこまで移動するのも面倒ですが、VBA、PowerShell、VS Code、AIエージェントなどのツールから見ても、作業入口が深いと扱いにくくなります。

このとき、ダウンロードフォルダーの下にプロジェクト用の入口を作っておくと、Downloads\案件名 から作業を始められます。ただし、入口の作り方には複数あります。Windowsのショートカット、Windowsのジャンクション、Windowsのシンボリックリンク、UNIXのシンボリックリンク、ハードリンクは、見た目が似ていても仕組みと用途が違います。

この記事では、まず「リンクとは何か」を整理し、ショートカット、ジャンクション、シンボリックリンク、ハードリンクを比較します。そのうえで、なぜプロジェクト用入口にはWindowsのジャンクションが扱いやすいのか、mklink /J をどう使うのか、作成後に何を確認すべきか、削除時に何へ注意すべきかを説明します。

本記事の対象とゴール

想定読者

  • WindowsでDropboxやGoogle Drive配下のプロジェクトを扱っている方。

  • ダウンロードした記事原稿、資料、AI出力をプロジェクトごとに分けて処理したい方。

  • PowerShell、VBA、VS Code、AIエージェントから扱いやすい作業入口を作りたい方。

  • ショートカット、ジャンクション、シンボリックリンク、ハードリンクの違いを整理したい方。

  • UNIXやLinuxのリンク概念を、Windowsの実務操作と対応づけて理解したい方。

本記事で得られること

  1. Windowsのショートカット、ジャンクション、シンボリックリンク、ハードリンクの違いを説明できます。

  2. UNIXのシンボリックリンク、ハードリンクと、Windowsのリンク機能を対応づけて理解できます。

  3. mklink /J の第1引数と第2引数を間違えにくくなります。

  4. 作成後に、本当に目的の実体フォルダーへつながっているか確認できます。

  5. 削除時に、入口だけを消すのか、実体を消すのかを分けて考えられます。

本記事で扱わないこと

  • NTFSの内部実装の詳細。

  • 管理者権限、開発者モード、企業ポリシーの詳細設定。

  • Linuxコマンドの網羅的な解説。

  • 既存フォルダーを大量に移動・整理する手順。

先に結論

Windowsで、深い場所にあるプロジェクトフォルダーを Downloads\案件名 のような分かりやすい入口から扱いたい場合、ショートカットよりもジャンクションが便利なことがあります。

ショートカットは、人間がクリックするための .lnk ファイルです。Explorerで開くには便利ですが、プログラムから見るとフォルダーではなくファイルとして扱われる場合があります。

ジャンクションは、Windowsのファイルシステム上で、あるフォルダーを別の実体フォルダーへつなぐ仕組みです。多くのツールから、通常のフォルダーに近い形で見えます。そのため、VBA、PowerShell、VS Code、AIエージェントなどから作業入口として扱いやすくなります。

基本形は次です。

cmd

mklink /J "作成するジャンクションのパス" "実体フォルダーのパス"

第1引数は、これから作る入口です。まだ存在していてはいけません。

第2引数は、すでに存在している実体フォルダーです。

この順序を間違えないことが、ジャンクション作成の一番大事なポイントです。

第1章 まず「リンク」を分けて考える

1.1 入口を作る方法は一つではない

「別の場所にあるファイルやフォルダーへ行きやすくする」という目的だけを見ると、ショートカット、ジャンクション、シンボリックリンク、ハードリンクは似ています。

しかし、実際には次のように役割が違います。

| 種類 | ざっくり言うと | 主な用途 |

| --- | --- | --- |

| Windowsショートカット | クリック用の案内ファイル | 人間がExplorerから開く |

| Windowsジャンクション | フォルダーを別フォルダーへつなぐ入口 | 深いフォルダーへの安定した作業入口 |

| Windowsシンボリックリンク | ファイルやフォルダーへの柔軟な参照 | 開発環境、互換パス、クロス環境 |

| UNIXシンボリックリンク | パス文字列を指す特殊ファイル | 別名、バージョン切替、設定参照 |

| ハードリンク | 同じ実体に別名を付ける | 同一ファイルを複数名で参照 |

この違いを理解しないまま使うと、人間には見えるのにプログラムから読めない、入口だけを消すつもりが実体側を操作してしまう、リンク先が消えて壊れる、といった混乱が起きます。

1.2 「見た目」と「ファイルシステム上の扱い」は違う

Explorerで見たときに、どれも「別の場所へ行ける入口」のように見えることがあります。

しかし、プログラムから見ると違います。ショートカットは .lnk ファイルです。ジャンクションやシンボリックリンクはファイルシステム上のリンクです。ハードリンクは、同じファイル実体に複数の名前が付いている状態です。

業務自動化で大事なのは、人間がクリックできるかだけではありません。VBA、PowerShell、VS Code、AIエージェント、同期ツール、バックアップツールからどう見えるかです。

第2章 Windowsショートカットとは何か

2.1 ショートカットは `.lnk` ファイルである

Windowsのショートカットは、拡張子 .lnk を持つファイルです。Explorerでは矢印付きのアイコンとして表示され、人間がダブルクリックするとリンク先を開けます。

これは、机の上に置いた案内板のようなものです。案内板そのものはフォルダーではありません。案内板を読んだExplorerが、リンク先を開いてくれます。

2.2 人間には便利だが、プログラムには不向きなことがある

ショートカットは、人間がクリックして目的のフォルダーへ移動する用途には便利です。

一方で、プログラムから見ると、ショートカットはフォルダーではなくファイルとして扱われることがあります。VBAでフォルダー一覧を取る、PowerShellで配下ファイルを列挙する、VS Codeでフォルダーを開く、といった場面では、期待どおりにリンク先へ入れないことがあります。

記事原稿や作業ファイルの入口として、ツールから安定して使いたい場合、ショートカットだけでは足りないことがあります。

第3章 Windowsジャンクションとは何か

3.1 見た目はフォルダー、実体は別の場所

ジャンクションとは、WindowsのNTFSで使えるフォルダーリンクです。あるフォルダーの場所を、別の実体フォルダーにつなぎます。

たとえば、次のような入口を作れます。

text
C:\Users\hoehoe\Downloads\LWP記事

この入口を開いたとき、実際には次のフォルダーの中身が表示されます。

text
C:\Users\hoehoe\マイドライブ\LWP記事\Download

人間から見ると、ダウンロードフォルダーの下にプロジェクト用フォルダーがあるように見えます。しかし、実体はプロジェクトフォルダー側にあります。

3.2 ジャンクションがプロジェクト入口に向く理由

ジャンクションは、ショートカットよりも通常のフォルダーに近い形で扱われます。

そのため、次のような用途に向きます。

  • 深いプロジェクトフォルダーへ短い入口を作る。

  • ダウンロードされた原稿やAI出力をプロジェクトごとに分けて受ける。

  • VBAやPowerShellから、毎回同じ入口を参照する。

  • VS CodeやAIエージェントに、分かりやすい作業フォルダーを渡す。

今回のように、Downloads\LWP記事 を作業入口にし、実体を マイドライブ\LWP記事\Download に置く場合、ジャンクションは実務的です。

3.3 ジャンクションの注意点

ジャンクションは便利ですが、リンクであることを忘れると危険です。

入口に見えているファイルは、コピーではありません。実体フォルダーの中身です。入口側でファイルを変更すれば、実体側も変更されます。入口側でファイルを削除すれば、実体側のファイルを削除することになります。

入口だけを消す操作と、配下の実体ファイルを消す操作は分けて考える必要があります。

第4章 シンボリックリンクとハードリンクとの比較

4.1 UNIXのシンボリックリンク

UNIXやLinuxのシンボリックリンクは、別のパスを指す特殊なファイルです。

たとえば、次のように作ります。

sh

ln -s /var/www/app/current /home/user/app

この場合、/home/user/app は /var/www/app/current を指します。リンク先のパスが存在すれば、そこへたどれます。リンク先が消えると、リンクは壊れます。

シンボリックリンクは、実体そのものではなく「どこを指すか」というパス情報を持つ入口です。バージョン切替、設定ファイルの共通化、深い場所への別名作成などによく使われます。

4.2 Windowsのシンボリックリンク

Windowsにもシンボリックリンクがあります。mklink で作成できます。

ファイルへのシンボリックリンクは次の形式です。

cmd

mklink "リンクファイル" "実体ファイル"

フォルダーへのシンボリックリンクは次の形式です。

cmd

mklink /D "リンクフォルダー" "実体フォルダー"

Windowsのシンボリックリンクは柔軟ですが、環境によっては管理者権限や開発者モードが関係します。企業PCではポリシーで制限されていることもあります。

単に同一PC上で深いフォルダーへの入口を作るだけなら、ジャンクションの方が扱いやすい場面があります。

4.3 ハードリンクとは何か

ハードリンクは、同じファイル実体に複数の名前を付ける仕組みです。

UNIXでは次のように作ります。

sh

ln report.txt report_backup_name.txt

この場合、2つのファイル名は同じ実体を指します。一方を編集すると、もう一方から見ても内容が変わります。どちらか一方を削除しても、もう一方の名前が残っていれば実体は残ります。

ただし、一般にハードリンクはファイルに対する仕組みであり、フォルダー入口を作る用途には向きません。プロジェクトフォルダーへの入口を作る目的なら、ハードリンクではなく、ジャンクションやシンボリックリンクを考えます。

4.4 比較表

| 観点 | ショートカット | ジャンクション | シンボリックリンク | ハードリンク |

| --- | --- | --- | --- | --- |

| 主な対象 | ファイル/フォルダーへの案内 | フォルダー | ファイル/フォルダー | 主にファイル |

| 実体との関係 | .lnk がリンク先情報を持つ | フォルダー入口が実体へつながる | パスを指すリンク | 同じ実体に別名を付ける |

| プログラムからの見え方 | ファイルに見えることが多い | フォルダーに近い | リンクとして見える | 通常ファイルに近い |

| リンク先が消えた場合 | 開けない | 開けない | 壊れたリンクになる | 他の名前が残れば実体は残る |

| プロジェクト入口向きか | 人間用なら可 | 向いている | 環境次第で可 | 不向き |

5.1 基本形

ジャンクション作成には、コマンドプロンプトの mklink /J を使います。

cmd

mklink /J "作成するジャンクションのパス" "実体フォルダーのパス"

別の言い方をすると、こうです。

text

第1引数: これから作る入口

第2引数: すでに存在している実体フォルダー

5.2 第1引数は、まだ存在していてはいけない

第1引数は、これから作る入口です。

たとえば、次のようなパスです。

text
"%USERPROFILE%\Downloads\LWP記事"

この LWP記事 は、まだ存在していてはいけません。すでに同じ名前のフォルダーやファイルがあると、ジャンクションを作成できません。

ただし、親フォルダーである Downloads は存在している必要があります。

5.3 第2引数は、すでに存在している必要がある

第2引数は、実体フォルダーです。

たとえば、次のようなパスです。

text
"C:\Users\hoehoe\マイドライブ\LWP記事\Download"

こちらは、実際に存在しているフォルダーである必要があります。ここに本物のファイルやフォルダーが置かれます。

第6章 作成手順

6.1 実体フォルダーを先に作る

まず、実体フォルダーを作ります。

text
C:\Users\hoehoe\マイドライブ\LWP記事\Download

このフォルダーは、プロジェクト側で管理する実体です。ここに記事原稿、AI出力、処理待ちファイルなどを置きます。

6.2 ジャンクションの入口がまだないことを確認する

次に、入口にしたいパスがまだ存在しないことを確認します。

text
C:\Users\hoehoe\Downloads\LWP記事

ここに既存フォルダーやファイルがある場合は、そのままではジャンクションを作れません。中身を確認し、必要なら別名にするか、どちらを正とするかを決めてから進めます。

6.3 コマンドを実行する

コマンドプロンプトで次を実行します。

cmd
mklink /J "%USERPROFILE%\Downloads\LWP記事" "C:\Users\hoehoe\マイドライブ\LWP記事\Download"

PowerShellから実行する場合も、cmd /c 経由で実行できます。

powershell
cmd /c mklink /J "%USERPROFILE%\Downloads\LWP記事" "C:\Users\hoehoe\マイドライブ\LWP記事\Download"

第7章 作成後の確認

7.1 PowerShellで確認する

PowerShellでは、次のように確認できます。

powershell
Get-Item -Force -LiteralPath "$env:USERPROFILE\Downloads\LWP記事" |
Format-List FullName,Attributes,LinkType,Target

期待する結果は、次のような状態です。

text

Attributes : Directory, ReparsePoint

LinkType : Junction

Target     : C:\Users\hoehoe\マイドライブ\LWP記事\Download

LinkType が Junction になっており、Target が意図した実体フォルダーになっていれば、接続先は正しいです。

7.2 実体側にも同じ中身が見える

ジャンクション入口から見えるファイルと、実体フォルダー側から見えるファイルは同じです。

たとえば、次の入口にファイルを置くとします。

text
C:\Users\hoehoe\Downloads\LWP記事\sample.md

実体側にも同じファイルが見えます。

text
C:\Users\hoehoe\マイドライブ\LWP記事\Download\sample.md

これはコピーではありません。同じ実体を、別の入口から見ている状態です。

第8章 削除時の注意

8.1 入口だけを消すつもりか、実体を消すつもりかを分ける

ジャンクションを扱うときに一番注意すべきなのは、削除です。

ジャンクションの入口を消したいだけなのか、実体フォルダーの中身を消したいのかを必ず分けます。

通常、不要になったのは入口だけです。実体フォルダーはプロジェクト側の資産なので、誤って削除してはいけません。

8.2 再帰削除は慎重に扱う

ジャンクションに対して再帰削除を使うと、環境やコマンドの扱いによっては実体側に影響するおそれがあります。

削除前には、対象が本当に入口だけなのか、Target がどこを指しているのかを確認します。

安全に扱うには、作るとき以上に、削除時の確認を丁寧に行う必要があります。

第9章 LWP記事作成ワークフローで使う場合

LWP記事のように、ダウンロードされたMarkdown原稿をプロジェクトへ取り込む場合、通常の Downloads 直下を毎回探すと、関係のないファイルまで候補に入りやすくなります。

そこで、次のような入口を作ります。

text
C:\Users\hoehoe\Downloads\LWP記事

実体は、プロジェクト側に置きます。

text
C:\Users\hoehoe\マイドライブ\LWP記事\Download

記事作成スキルは、このジャンクション直下だけを確認します。通常の Downloads 直下や、他のサブフォルダーは対象にしません。

この形にすると、AI出力や記事原稿を置く場所が明確になり、記事作成フローの入力元も安定します。

まとめ

Windowsのショートカット、ジャンクション、シンボリックリンク、ハードリンクは、どれも「別の場所へつながる」ように見えます。しかし、仕組みと用途は違います。

ショートカットは、人間がクリックするための .lnk ファイルです。シンボリックリンクは、ファイルやフォルダーへのパス参照です。ハードリンクは、同じファイル実体に別名を付ける仕組みです。ジャンクションは、Windowsでフォルダーを別の実体フォルダーへつなぐ入口です。

プロジェクト用の作業入口を Downloads の下に作り、VBA、PowerShell、VS Code、AIエージェントなどから通常のフォルダーに近い形で扱いたい場合、ジャンクションは実務的な選択肢です。

mklink /J では、第1引数がこれから作る入口、第2引数がすでに存在する実体フォルダーです。この順序を間違えないことが重要です。

作成後は、Get-Item などで LinkType と Target を確認します。削除時は、入口だけを消すのか、実体を消すのかを必ず分けます。

出典メモ

  • 元Markdown: C:\Users\hoehoe\マイドライブ\LWP記事\codex\archives\processed_downloads\20260521_windows_junction_project_folders.md

  • 改訂日: 2026年5月21日

  • 加工方針: 元Markdownの手順説明をもとに、Windowsショートカット、Windowsジャンクション、Windows/UNIXのシンボリックリンク、ハードリンクの比較を補い、この記事だけでリンク概念と実務手順を理解できるように再構成した。