【Chrome拡張】ファイルの種類やドメインで保存先を切り替えてくれる「Downloads Router」が便利!

cover

こんにちは、えんぞーです。

100 円ショップで目の醒める飴(コーヒー)というのが売っていたので試しに買ってなめてみたらとても不味くて目が醒めました。

一人で「こういうことなの!?」と突っ込んでいたのですが、なぜかその不味さがクセになってまた買ってきました。何かやばい成分でも入っているのでしょうか。

ネットでダウンロードしたファイルの行方

ネットをしていれば何かしらのファイルをダウンロードしますよね。画像だったり文章だったり何でも良いですが。

で、ダウンロードファイルは Chrome の通常設定では決まった場所に保存されているはずです。

私の場合はファイルによって保存先を変えたいときが多々あるので毎度ダイアログを開くようにしています。

screenshot_48

メニューの「設定」→「詳細設定を表示…」をクリックすることで「ダウンロード」の設定項目が出てきます。

この設定をしていて面倒なのがフォルダの移動です。

しかも一定の間隔で決まったファイルをダウンロードする事があり、それが数パターンあったりします。

ショートカット作ってみたり一度ダウンロードしてそこから振り分けたりと色々試してみたのですけどね・・・面倒になってやめてしまいます。

この微妙な手間をいつかは解決したいと思いつつもそこまでクリティカルな問題でも無いので放置していたのですが、最近本当に嫌になったので一念発起して解決に乗り出しました。

常々思っていた理想の形は

ドメイン毎に保存場所を切り替えてくれる拡張

これです。

意識しなくとも適した場所に保存出来れば一番良いので。

昔、そういう拡張無いかなと思って少し探した事もあったのですがその時は見つからず諦めました。。

今回も探してみて無かったら無理矢理にでも自作してしまおうと考えていたのですが、少し探してみたらそれっぽいの発見しました。

結論から言うと探していた機能ズバリだったのですが、私の希望を叶えるためには一工夫必要でした。

「Downloads Router」で保存先を切り替える

具体的にどんな拡張なのかをざっくりと言いますと、

  • ファイルタイプ(MIME)で保存場所を切り替えられる
  • リファラー(ドメイン)で保存場所を切り替えられる
  • ファイル名(キーワード)で保存場所を切り替えられる

このような機能になっているようです。

ルールは上記リストの上の方から順に見ていくようで、どこにも当てはまらなかったらブラウザのデフォルト設定になるようです。

上記で説明した「ファイルごとに保存する場所を確認する」のチェックを付けている場合は指定したフォルダでダイアログが表示され、チェックが付いていない場合はそのまま指定した場所に保存されると言った動きになります。

う~ん、これが本当にそうならとっても便利。

早速インストールして試して見ました。

screenshot_49

ブログで使用する画像でいつもお世話になっている「photopin.com」からのダウンロードは E ドライブの「_img」に保存するようにしました。

が、しかし。動作せず。

前回の保存場所がダイアログに出てきてしまいます。

せっかく見つけた拡張です。そんなにすぐすぐ諦められないので色々調べてみると(すぐ出てきたけども)・・・

注意

どうやら Chrome 側の制限により指定出来るダウンロードフォルダは設定されている保存場所以下でならないという事らしいです。

どういう事かと言いますと、Chrome 側で設定している保存場所が「C:Download」という場所であればそこよりも下の階層でないと指定出来ないという事になります。

この瞬間に

あ。使えねぇ、これ。

と思ってしまいましたが、作者様は解決策を提案していてくれました。

  シンボリックリンクを貼ればどこにでも保存出来る

解決策はシンボリックリンクを貼るという単純な方法です。

ポイント

WindowsVista 以降であればシンボリックを作成出来るのでその機能を使って他の場所にあるフォルダに保存出来ます。

シンボリックリンクを設定しやすくするためにシェル拡張をインストールしてしまいましょう。

ちなみに Linux ではお馴染みのシンボリックリンクですが Windows ではまだ馴染みが無いかも知れません。平たく言うとショートカットになります。

じゃ、ショートカットで良いじゃ無いかと言う事になりますが、Windows のショートカットというのは単に行き先が書いてあるだけのファイルであってファイルやフォルダそのものとしては扱えません。

「c:\hoge」という場所のショートカットを「d:\download.lnk」として作った場合、「download.lnk」をダブルクリックすれば「c:hoge」に飛びますがそれだけです。

「d:\download.lnk」は「c:\hoge」と同じ場所として扱えません。

シンボリックリンクだと「d:\download」と「c:\hoge」は同じ場所を指すことになります。

極端に例えると「どこでもドア」と「タケコプター」、「瞬間移動」と「舞空術」の様な隔たりがありますのでご注意ください。

それではシンボリックリンクを簡単に使えるようにするためにシェル拡張をインストールしましょう。

Link Shell Extension

こちらを動かすためにはランタイムが必要らしいので環境によってダウンロードしてインストールしましょう。

Chocolatey でインストールしたい方は下記のコマンドにてインストールしてください。

Visual C++ 2005 再頒布可能パッケージ (64bit)

Visual C++ 2005 再頒布可能パッケージ (x86)

screenshot_50

ランタイム、シェル拡張とインストールして再起動します。

インストールは特に何も変えたりする部分はないのでウィザードの通りに進めば終わります。

拡張のインストール時に言語のダイアログが出ますのでそれだけ「Japanase」にすれば OK だと思います。

↓ こんなの。

screenshot_51

Chocolatey でインストールする場合

1choco install linkshellextension

シンボリックリンクを張ってもう一度試してみる

さて、これで環境は整いましたのでさっそくシンボリックリンクを張ってみようと思います。

まずは、ダウンロードファイルを保存したいフォルダがある場所に行き対象のフォルダを右クリックします。

今回の例で言うと「E:_catch_img」になります。

screenshot_52

次に Chrome のダウンロードフォルダに設定しているフォルダに行きます。今回は「C:UsershogeDownloads」です。

そこで右クリックして「リンクを作成」→「シンボリックリンク」を選択するとシンボリックリンクの完成です。

ちなみに作成したシンボリックリンクは普通に消して大丈夫です。リンク元のフォルダごと消えたりしませんのでご安心を。

screenshot_54

試しにシンボリックリンクをクリックしてみましょう。リンク元のフォルダにアクセスできれば OK です。

コマンドライン大好きっ子であればこちら

余計なものはインストールしないよって方はこちらの方法でシンボリックリンクを作成しましょう。

※コマンドプロンプトは管理者権限で起動。

screenshot_60
#コマンド
mklink /prefix link_path file/folder_path
screenshot_61
#今回の例だとこうなります
mklink /D C:UsershogeDownloads_img E:_catch_img

再度「Downloads Router」を試してみる

今度はシンボリックリンクを作ったのでリンクの指定はこのようになります。Chrome の設定したフォルダからの相対パスですね。

screenshot_55

photopin.com から試しにダウンロードしてみましょう。

screenshot_56 screenshot_57

ちゃんと指定したフォルダに切り替わっています。

もちろんシンボリックリンクなので実際のファイルは「E:_catch_img」の中に保存されております。

screenshot_59

あとはダウンロードのファイルやサイト別ごとにルールを作っていけばファイルの保存時にあっち行ったりこっち行ったりしなくて済むとなるわけですね。

よかったよかった。

 

とりとめのないまとめ

ダウンロードファイルの保存先にいちいち移動していた生活から脱却できました。同じような悩みを持っている人がいればぜひお勧めします。

シンボリックリンクのくだりに関しては設定した保存場所以下の階層でフォルダ分けする場合必要の無い工程なので普通はそれで良いかもしれません。

どうしても決まった場所にダウンロードしておきたい場合のみシンボリックリンクを貼ってあげましょう。