Quali file vengono aperti da un'applicazione specifica?


21

C'è un modo per elencare tutti i file che sono attualmente aperti da un processo specifico in Windows?

Voglio dire i file che hanno avuto un fopen, ma mai ottenuto fcloseda un processo specifico.

Ho provato a utilizzare Sysinternals Process Monitor, ma non sono riuscito a capire come elencare i file aperti correnti, ma solo quando si verifica l'apertura.


Domanda correlata (con risposte pertinenti a questa domanda): stackoverflow.com/questions/15708/lsof-equivalent-for-windows
Anderson Green

Risposte:


17

È possibile provare Sysinternals Process Explorer anziché Process Monitor. Process Monitor è progettato per guardare quali processi fanno come fanno allora. Process Explorer è più per vedere lo stato attuale dei processi; è Task Manager ma con circa 10 volte la funzionalità.

Sysinternals ha anche handle.exequale è uno strumento da riga di comando che ti dice quali file ha aperto un processo.


29

Dai un'occhiata a Process Explorer da Sysinternals.

Per vedere i file aperti per un processo, selezionare un processo dall'elenco, selezionare l'opzione di menu Visualizza-> Vista pannello inferiore-> Maniglie. Tutti gli handle del tipo "File" sono i file aperti.

Inoltre, un ottimo modo per trovare quale applicazione ha un file aperto è usando l'opzione di menu Trova-> Gestisci o DLL. Basta inserire il nome del file che stai cercando e premere "Cerca" per trovare i processi con un file aperto corrispondente alla stringa di ricerca.


4
+1 per qualsiasi cosa, da Sysinternals ... btw, un collegamento diretto: live.sysinternals.com/procexp.exe
fretje

+1 per affrontare il suo problema con gli strumenti che sta usando. IMO questa dovrebbe essere la risposta corretta. Non è necessario utilizzare handle.exe quando si sta già utilizzando e si ha familiarità con Process Explorer.
BoldAsLove

5

Process Explorer di Sysinternals è in realtà piuttosto inutile quando si tratta di gestire file handle (al contrario di DLL, ecc.). Utilizza Monitor risorse di Windows, fai clic sulla scheda CPU. Accanto a Associated Handles digita il nome del file e vedrai chi lo ha aperto.


leggi la risposta di @heavyd, non è inutile. La seconda parte è ancora una soluzione valida.
BoldAsLove

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.