Quais arquivos são abertos por um aplicativo específico?

21

Existe uma maneira de listar todos os arquivos atualmente abertos por um processo específico no Windows?

Quero dizer, arquivos que possuem um fopen, mas nunca obtêm um fclosepor um processo específico.

Tentei usar o Sysinternals Process Monitor, mas não consegui descobrir como listar os arquivos abertos atuais - mas apenas quando a abertura acontece.

braçadeira
fonte
Pergunta relacionada (com respostas relevantes a esta pergunta): stackoverflow.com/questions/15708/lsof-equivalent-for-windows #
Anderson Green

Respostas:

17

Você pode tentar o Sysinternals Process Explorer em vez do Process Monitor. Process Monitor é o design para observar o que os processos fazem como fazem então. O Process Explorer é mais para ver o estado atual dos processos; é o Gerenciador de tarefas, mas com cerca de 10x a funcionalidade.

A Sysinternals também possui handle.exequal é uma ferramenta de linha de comando que informa quais arquivos um processo foi aberto.

Dave Webb
fonte
29

Confira o Process Explorer da Sysinternals.

Para ver os arquivos abertos para um processo, selecione um processo na lista, selecione a opção de menu Exibir-> Vista inferior do painel-> Alças. Todas as alças do tipo "Arquivo" são os arquivos abertos.

Além disso, uma ótima maneira de descobrir qual aplicativo tem um arquivo aberto é usando a opção de menu Localizar-> Identificador ou DLL. Basta digitar o nome do arquivo que você está procurando e clicar em "Pesquisar" para encontrar os processos com um arquivo aberto correspondente à string de pesquisa.

pesado
fonte
4
+1 para qualquer coisa de Sysinternals ... btw, um link direto: live.sysinternals.com/procexp.exe
fretje
+1 por resolver seu problema com as ferramentas que ele está usando. IMO, esta deve ser a resposta correta. Não há necessidade de usar handle.exe quando você já estiver usando e familiarizado com o Process Explorer.
BoldAsLove
5

O Process Explorer da Sysinternals é realmente bastante inútil quando se trata de lidar com identificadores de arquivos (em oposição a DLLs, etc.). Use o Windows Resource Monitor, clique na guia CPU. Ao lado de Alças associadas, digite o nome do arquivo e você verá quem o abrirá.

Will Nitschke
fonte
leia @ resposta pesada, não é inútil. A segunda parte ainda é uma solução válida.
BoldAsLove