27

特定のファイルをロックしているプロセスをプログラムで特定する方法を見つけようとしています。Win32 API と WMI を検索しましたが、今のところ何も見つかりません。私はそれが可能であることを知っています.Sysinternalsは、システム上のすべてのプロセスによってアクセス/ロックされているすべてのリソースを一覧表示できます.

誰かヒントをくれませんか?

4

7 に答える 7

24

Sysinternals の handle.exe を使用できます。

何かのようなもの:

> handle /accepteula C:\path\to\directory
...
program.exe           pid: 1234   type: File           2E4: C:\path\to\directory
...

https://stackoverflow.com/a/599268/367916に感謝します。

于 2013-01-11T20:00:53.523 に答える
4

十分に新しいバージョンの Windows に限定できる場合、Restart Manager は、どのプロセスが特定のファイルを開いているかを通知できます。

于 2014-08-12T21:31:36.890 に答える
2

Process Explorerの動作方法のため、検索する必要があるのは、特定のプロセスにアタッチされているファイルハンドルを見つける方法であり、システム内のプロセスごとにそのリストを取得して、検索する必要があると思われます。その中のファイル。

于 2008-12-18T23:35:55.100 に答える
0

Windows ではわかりませんが、Linux ではlsofコマンドを使用するか、フォルダー /proc/PROCESS_ID/fd を検索してどのプロセスがファイルを開いたかを確認できることを知っておくと便利な人がいるかもしれません。

于 2008-12-19T07:34:55.650 に答える