ゆるゆるエンジニアの技術メモ

神奈川在住のITエンジニアの忘備録です。主にプログラミング(Perl, Java など)やネットワーク技術について、学んだことを自分の中で整理するために書いています。書いたことが誰かのご参考になれば幸いです。

ファイルを開いているプログラムを特定する方法

Windows上で、ファイルを移動したり、ファイル名を変更したい時、何らかのプログラムがそのファイルを掴んでいて、やりたいことができないことがある。通常は、現状で開いているアプリを確認すればどのプログラムが対象のファイルを開いているのか分かるので、そのプログラムを閉じてから移動や変更を実施すれば良い。

ただ、時々、落としたと思ったプログラムが意図せず残存してファイルを掴んでいたり、バックグラウンドで動くプログラムがこっそりファイルを掴んでいるなど、どのプログラムを落とせば良いのか分からない時がある。そんな時は、以下の方法で対象のファイルを掴んでいるプログラムを特定する。(以下はWindows10での操作例)

  • リソースモニターを開く。リソースモニターはタスクマネージャーの「パフォーマンス」タブから辿れる。
  • リソースモニターの「関連付けられたハンドル」のテキストボックスに対象のファイルのフルパスを入力しEnterを押下する。

これで、「関連付けられたハンドル」配下の「イメージ」にファイルを掴んでいるプログラムが表示される。

ちなみに、Linuxでは lsof というコマンドがあり、上記と同等のことができる。