■
たまにファイルを削除できなかったり、ディレクトリ名を変更できなかったりすることがある。これはあるプログラムがそのファイルを「つかんで」おり、変更できないことになっている状態である。なのでその「つかんで」いるプログラムを終了させれば変更できるようになる。問題はそのプログラムがなんなのかをどうやって知るか、、だ。
ぐーぐるさんに問い合わせると、
http://www.sysinternals.com/ntw2k/freeware/handle.shtml
から、あるファイルを「つかんで」いるプログラム名を出力するユーティリティをダウンロードできるようだ。
コマンドラインユーティリティなので、備忘録も兼ねて使い方を簡単に説明しておこう。
test.txt というファイルを「つかんで」いるプログラムを検索するには
>handle test.txtと入力すれば、それらのプログラム名が出力される。(test.txt のディレクトリ名を入力する必要はない)
ファイルを「放す」には
プログラムがわかれば、そのプログラムを終了させればいいのだが、何らかの理由で終了できない時は、つかんでいるファイルだけを「放す」ことにより、そのファイルに対する変更が可能になる(もちろんそんなことされたプログラムが正常に動くかどうかわからんけど・・)
さっきの検索で、test.exe というプログラム名が出力されたとしたら、
>handle -u -p test.exeと実行すると、
TEST.EXE pid: 1276 ****というようなリストが出力されるので、
21C: File C:\temp\test.txt
228: File C:\temp
>handle -c 21C -p 1276と入力すればOKだ。
# ちょっとこのカテゴリ名はイマイチだなぁ。もうちょっといいネーミングはないものかねぇ・・