2014年4月9日水曜日

ネットワークドライブ上のファイルをゴミ箱に入れる方法

あまり美しくない方法ですが、Windowsでネットワークドライブ上のファイルを削除した時に、ゴミ箱に入れる方法を見つけました。そういうことを実現するフリーソフトを使うという手もありますが、今回はWindows標準の機能のみを使い、右クリック→削除のほか、DELETEキーでの操作にも対応できます。

(方法)
次の手順で、2つのディレクトリを作成します。

  1. 管理者権限でコマンドプロンプトを起動します。
  2. 適当なディレクトリに移動して、次の2つのコマンドを実行します。
  • mklink /D first_dir \\server\share-name
  • mklink /J target_dir first_dir

first_dirtarget_dirは任意の名前を指定してください。
また、\\server\share-nameはネットワークドライブのあるサーバー名と共有名を適宜入れてください。

この操作で、2つのディレクトリ(というか、一つはシンボリックリンクで、もう一つはジャンクション)ができます。2つ目のtarget_dirを経由して削除したファイルはゴミ箱に入ります。しかし、1つ目のfirst_dir以下から削除するとゴミ箱には入りません。

“ネットワークドライブ”というくらいですから、ディレクトリ上にマウントされたネットワークドライブではなく、固定のドライブ名を与えたいと思う人も多いでしょう。↑で作ったtarget_dirを更にsubstコマンドでドライブ名を与えることは可能(substを実行するときは管理者権限ではなく、一般ユーザで行ってください)ですが、そのドライブから削除した場合はゴミ箱に入ってくれなかったです・・・残念。

ちなみに、ここで使ったmklinkコマンドは、Windows Vista以降でのみ使用できます。