【Windows】コピーしたファイルパスをエクスプローラーで開くのがめんどくさいので、ショートカット一発にした話

目次

  1. 背景
  2. 追記
  3. 構成
  4. Javaの実装
    1. ソース
    2. 動作確認
  5. Javaを実行するためのバッチ
  6. バッチをショートカットから登録するためのショートカット
  7. うまく動かない時
  8. まとめ
  9. 関連記事
  10. おすすめの本

背景

こんにちは。Javaで便利ツールつくるおじさんの karintomania(@karintozuki)です。

ファイルパスを開くのが面倒だ、と感じたことはないだろうか。

例えば、メールで共有フォルダのパスが送られてきた時、
それを開くためには、

  1. リンクをコピー
  2. エクスプローラーを開く
  3. リンクをペースト

という手順を踏むと思う。

これがだるいのだ。
一応Win+Eボタンでエクスプローラを開く、というショートカットを使っていたが、
それでも最近だるくなってきた。

というわけでショートカット一発でクリップボードにあるフォルダを開くようにしてみた。

余談だけど、OneNoteとかTeamsとかのマイクロソフト製品がファイルパスのリンクに対応してくれていないのは、何故なんだろう。
OneNoteは対応していると見せかけてクリックするとエラーを吐いてくる。
リンクを作成しても

エラーが出る

追記

Javaが動く環境がない場合もあると思うので、
VBSで同じことをする記事を描いています。
コピーしたパスをエクスプローラで開くショートカットを作った話(VBS)

構成

基本はJavaなのだが、ショートカット一発で起動させるために、
Javaを起動するバッチにWindowsショートカットを割り当てるということをしている。

登場人物は以下の通り。

  1. Java
  2. Javaを実行するためのバッチ
  3. バッチをショートカットから起動するためのショートカット

ちょっとややこしそうだが、解説していく。

Javaの実装

元々コマンドプロンプトで実装するつもりだった。
クリップボードから値をとることなんて、
コマンドプロンプトで余裕でできると思っていたが、
どうも簡単にはできないらしかったので、Javaで実装してしまった。

ソース

ClipboardDemo.java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
import java.awt.datatransfer.*;
import java.awt.*;

public class ClipboardDemo {

    public static void main(String args[])throws Exception {

            // クリップボードから値を取得
            Clipboard c=Toolkit.getDefaultToolkit().getSystemClipboard();
            String dist = (String)c.getData(DataFlavor.stringFlavor);

            // ダブルクオーテーション、改行コードを削除
            dist = dist.replace("\"", "");
            dist = dist.replace("\n", "");

            // ファイル名が含まれていたら削除 *1
            dist = dist.replaceAll("\\\\[^\\\\\\\\]+\\..*$", "");

            // ダブルクオーテーションで囲む
            dist = "\"" + dist + "\"";

            // エクスプローラ起動してパスを開く
            Runtime.getRuntime().exec("Explorer.exe " + dist);

    }
}

*1
私はパスにファイル名が入っていた時は、ファイル名を除いてフォルダを開くことが多いので、
このような処理を入れているけど、直接ファイルを開きたい人は不要。

動作確認

何かしらのファイルパスをクリップボードに入れた状態で、
以下コマンドを叩いて動作確認してみる。

javac ClipboardDemo.java && java ClipboardDemo

Javaを実行するためのバッチ

さっきのJavaクラスファイルを実行するためには同じフォルダにバッチを作る。

1
java ClipboardDemo

特に解説なし。

バッチをショートカットから登録するためのショートカット

これが大事。
今回やりたいのはコピーしてからすぐフォルダを開くこと。
そのためにはJavaを実行するバッチのショートカットを作成して、そのショートカットを起動するショートカットを登録する必要がある。

ややこしいな。
混乱を避けるため、
ショートカット→何かのファイルへのショートカットファイル
ホットキー→キー操作という意味でのショートカット
と記載することにする。

まず先ほど作ったバッチファイルのショートカットを作成する。

それをデスクトップに配置して、
右クリック→プロパティ→ショートカットキー
で起動のためのホットキーを設定できる。

私はコピーしてからスムーズにホットキーを押せるよう、
Ctrl+Alt+Cとした。

これで晴れて完成。
設定したホットキーを押して動作確認してみよう。

うまく動かない時

うまく動かない時は、
タスクマネージャの詳細タブを開いて、system settingsが中断状態になっているときがある。
もし、そうなっていたらsystem settingsを終了させればOK。

まとめ

こんなことをしたい人がどれだけいるのかわからないけど、
個人的にはこの数クリックがなくなってストレスが減った。
QOLを高めたい人はぜひ。

それじゃ今日はこの辺で。

関連記事

こちらの記事もおすすめ。

現役エンジニアが業務を自動化してきた手法7つ+αを紹介【Windows編】

おすすめの本

業務の自動化に興味があれば以下の本はいかがでしょうか。
仕事を自動化・効率化するためのいろいろなテクニックが載っています。