Cドライブの容量が圧迫されたので、外付けHDD等他のディスクにデータを保存するケースはあると思います。
しかし次のときに困ります。
- 「絶対パス」指定のプログラミング
- 「絶対パス」指定のファイルリンク
たとえば、Dropboxなどオンラインストレージで共有している場合、ノートパソコンは特に容量不足でデータを外付けやセカンドディスクに起きがちです。そうすると、絶対パスが異なるので動作しない場合があります。GISやコマンドベースでの処理が必要なケースです。
シンボリックリンク(mklinkコマンド)で問題解決!
Linuxや macOS であればシンボリックリンク(ln -s)を使えば手軽に解決できてしまいます。
Windowsでは Vista から mklink コマンドが実装されたことで手軽に使えるようになりました。
- mklink /D 参照したいフォルダ “参照先フォルダ”
です。パスに¥ やスペースが含まれるならダブルクォーテーションで括りましょう。
こうすることで、「参照したいフォルダ」にアクセスすることで、参照したいフォルダのパスのまま、実際のデータは「参照先フォルダ」になります。
例 Y:¥ を C:¥Users¥kitani¥Dropbox に割り当てる
C:¥Users¥kitani¥Dropbox にアクセスすると、実体は Y:¥ の中身をみます。
しかし、パス C:¥Users¥kitani¥Dropbox にアクセスできるので、C:¥Users¥kitani¥Dropbox であるかのように振る舞うことができます。
設定方法
- Y:¥ にDropbox があるとします
- 管理者モードで「コマンドプロンプト」を立ち上げます。
- 下記の例では、C:¥Users¥kitani¥Dropbox に Y:¥のリンクを作成してます。
cd c:¥Users¥kitani
mklink /D Dropbox “Y:¥”
ですね。
- dir コマンドを実行すると、、下記のように、
Y:¥ を Dropbox という名でシンボリックリンクを作成できているのが分かります。
ショートカットと異なるのは、cd で移動できる点ですね。
こうしておけば、
にあるように、Dropbox フォルダのショートカットみたなものが出来ていて、そこにアクセスすると実体は Yドライブなのに、
にあるように、Cドライブにある Dropbox にアクセスしているかのように見えます。
これだと絶対パスとして従来の Y:¥ に加えて、C:¥Users¥kitani¥Dropbox も持つことになるので、いずれの絶対パスでアクセスしなければならなくても、アクセスできちゃうということになります。これでCドライブの容量不足を回避できるかもしれませんね!
2018年5月14日 情報処理室長・木谷