特定のアプリケーションによってどのファイルが開かれますか?


21

Windowsの特定のプロセスによって現在開かれているすべてのファイルを一覧表示する方法はありますか?

取得したファイルにはがありますが、特定のプロセスでfopen取得したことはありませんfclose

Sysinternals Process Monitorを使用しようとしましたが、現在開いているファイルを一覧表示する方法がわかりませんでした。ただし、開いたときだけです。


関連する質問(この質問に関連する回答を含む):stackoverflow.com/questions/15708/lsof-equivalent-for-windows
Anderson Green

回答:


17

プロセスモニターの代わりにSysinternals Process Explorerを試すことができます。プロセスモニターは、プロセスが何をするかを監視するための設計です。Process Explorerは、プロセスの現在の状態を確認するためのものです。タスクマネージャーですが、機能は約10倍です。

Sysinternalsにhandle.exeは、プロセスが開いているファイルを知らせるコマンドラインツールもあります。


29

SysinternalsからProcess Explorerを確認してください。

プロセスの開いているファイルを表示するには、リストからプロセスを選択し、[表示]-> [下部パネルビュー]-> [ハンドル]メニューオプションを選択します。「ファイル」タイプのハンドルはすべて、開いているファイルです。

また、どのアプリケーションがファイルを開いているかを見つけるには、[検索]メニューの[ハンドル]または[DLL]メニューオプションを使用します。探しているファイルの名前を入力し、「検索」をクリックして、検索文字列に一致するファイルが開いているプロセスを見つけます。


4
Sysinternalsからのすべての+1 ...ところで、直接リンク:live.sysinternals.com/procexp.exe
fretje

使用しているツールに関する問題に対処した+1。IMOこれは正しい答えです。プロセスエクスプローラを既に使用しており、使い慣れている場合は、handle.exeを使用する必要はありません。
BoldAsLove

5

Sysinternalsのプロセスエクスプローラーは、(DLLなどとは対照的に)ファイルハンドルの処理に関しては実際にはほとんど役に立ちません。Windowsリソースモニターを使用して、[CPU]タブをクリックします。[関連付けられたハンドル]の横にファイルの名前を入力すると、ファイルを開いているユーザーが表示されます。


@heavydの答えを読んでください。2番目の部分は依然として有効なソリューションです。
BoldAsLove

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.