現状

今の私のWindowsPCは、ドライブ構成がちょっと変で、

  • {C: 128GB} Windowsやその他アプリが沢山入っているが、容量がまあ少ない
  • {E: 2TB} メディアファイルや明示的に保存場所を指定したアプリがある。全然容量が余っている

こんな状態ですけども、新しくアプリをインストールするときは容量の余っているEドライブにインストールしたいところだが、インストール場所を変更することができない場合も多い!!
それにより、Eドライブが余っているのにCドライブがカッツカツになるもどかしい事態。

解決法

そこでなかなかいい解決方法があります。
それがディレクトリ・ジャンクションを使う方法。
(シンボリックリンクに近い)

これを使うとアプリケーション側にディレクトリの位置を騙す(?)ように、あたかもファイルがその位置にあるようにしつつ保存場所を変えることができます。

コマンド

外部ソフトなしでジャンクションを作るにはコマンドが必要です。

例えば、Cドライブの C:\Path\To\HeavyApp フォルダを、余裕のある EドライブのE:\Junctions\HeavyAppに飛ばしたい場合は、

  • 元のフォルダをEドライブに移動させる。(例: E:\Junctions\HeavyApp
  • 次のコマンドを打つ:(パスは自身の環境に合わせるのだ)
    mklink /j "C:\Path\To\HeavyApp" "E:\Junctions\HeavyApp"

注意

  1. コピーではなく移動
    ジャンクションを生成する場所に同名ディレクトリがあるとエラーになる。
  2. いずれのドライブもファイルシステムがNTFS形式である必要がある。
  3. アンインストール時、アンインストーラーが”リンク先のデータ”まで綺麗に消してくれるとは限らない。
  4. エクスプローラーの容量表示が正常に表示されない場合がある
  5. ドライブレター(E:)が変わると死ぬ
  6. バックアップソフトによっては、Cドライブをバックアップするときに「リンク先のDドライブの実体までコピーしようとする」ものと、「リンクという情報だけコピーする」ものがある。後者の場合、バックアップされない。
  7. **動作しなくなるソフトも少なからずある。**低レイヤーなディスクツールや、セキュリティ・ウイルス対策ソフト、インストーラー / アップデーター等。