Welche Dateien werden von einer bestimmten Anwendung geöffnet?


21

Gibt es eine Möglichkeit, alle Dateien aufzulisten, die derzeit von einem bestimmten Prozess in Windows geöffnet werden?

Ich meine Dateien, die eine haben fopen, aber nie eine fclosevon einem bestimmten Prozess.

Ich habe versucht, Sysinternals Process Monitor zu verwenden, konnte aber nicht herausfinden, wie die aktuell geöffneten Dateien aufgelistet werden sollen - allerdings nur, wenn das Öffnen erfolgt.


Verwandte Frage (mit relevanten Antworten auf diese Frage): stackoverflow.com/questions/15708/lsof-equivalent-for-windows
Anderson Green

Antworten:


17

Sie können Sysinternals Process Explorer anstelle von Process Monitor verwenden. Mit Process Monitor können Sie beobachten, welche Prozesse wie damals ablaufen. Der Prozess-Explorer dient eher dazu, den aktuellen Status von Prozessen zu sehen. Es ist Task-Manager, aber mit etwa 10-facher Funktionalität.

Sysinternals verfügen auch über handle.exeein Befehlszeilentool, das angibt, welche Dateien ein Prozess geöffnet hat.


29

Checken Sie den Process Explorer von Sysinternals aus.

Um die geöffneten Dateien für einen Prozess anzuzeigen, wählen Sie einen Prozess aus der Liste aus und wählen Sie die Menüoption Ansicht-> Ansicht des unteren Bedienfelds-> Handles. Alle Punkte vom Typ "Datei" sind die geöffneten Dateien.

Mit der Menüoption Find-> Handle oder DLL können Sie außerdem hervorragend ermitteln, in welcher Anwendung eine Datei geöffnet ist. Geben Sie einfach den Namen der gesuchten Datei ein und klicken Sie auf "Suchen", um die Prozesse mit einer geöffneten Datei zu finden, die der Suchzeichenfolge entspricht.


4
+1 für alles von Sysinternals ... Übrigens, ein direkter Link: live.sysinternals.com/procexp.exe
Freitag,

+1 für die Behebung seines Problems mit den von ihm verwendeten Tools. IMO sollte dies die richtige Antwort sein. Es ist nicht erforderlich, handle.exe zu verwenden, wenn Sie den Prozess-Explorer bereits verwenden und mit ihm vertraut sind.
BoldAsLove

5

Process Explorer von Sysinternals ist eigentlich ziemlich nutzlos, wenn es darum geht, mit Dateihandles umzugehen (im Gegensatz zu DLLs usw.). Verwenden Sie Windows Resource Monitor und klicken Sie auf die Registerkarte CPU. Geben Sie neben Associated Handles den Namen der Datei ein und Sie werden sehen, wer sie geöffnet hat.


Lesen Sie @Heavyd Antwort, es ist nicht nutzlos. Der zweite Teil ist immer noch eine gültige Lösung.
BoldAsLove

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.