Quels fichiers sont ouverts par une application spécifique?

21

Existe-t-il un moyen de répertorier tous les fichiers actuellement ouverts par un processus spécifique sous Windows?

Je veux dire les fichiers qui ont un fopen, mais qui n'ont jamais été obtenus fclosepar un processus spécifique.

J'ai essayé d'utiliser Sysinternals Process Monitor, mais je ne pouvais pas comprendre comment répertorier les fichiers ouverts en cours - mais uniquement lorsque l'ouverture se produit.

serrer
la source
Question connexe (avec des réponses pertinentes à cette question): stackoverflow.com/questions/15708/lsof-equivalent-for-windows
Anderson Green

Réponses:

17

Vous pouvez essayer Sysinternals Process Explorer au lieu de Process Monitor. Process Monitor est conçu pour observer ce que les processus font comme ils le font alors. L'Explorateur de processus est plus pour voir l'état actuel des processus; c'est Task Manager mais avec environ 10 fois la fonctionnalité.

Sysinternals possède également handle.exeun outil en ligne de commande qui vous indique les fichiers ouverts par un processus.

Dave Webb
la source
29

Consultez Process Explorer de Sysinternals.

Pour voir les fichiers ouverts pour un processus, sélectionnez un processus dans la liste, sélectionnez l'option de menu Affichage-> Affichage du panneau inférieur-> Poignées. Toutes les poignées de type "Fichier" sont les fichiers ouverts.

En outre, un excellent moyen de trouver quelle application a un fichier ouvert est d'utiliser l'option de menu Find-> Handle ou DLL. Entrez simplement le nom du fichier que vous recherchez et appuyez sur "Rechercher" pour trouver les processus avec un fichier ouvert correspondant à la chaîne de recherche.

lourd
la source
4
+1 pour quoi que ce soit de Sysinternals ... btw, un lien direct: live.sysinternals.com/procexp.exe
fretje
+1 pour avoir résolu son problème avec les outils qu'il utilise. OMI, cela devrait être la bonne réponse. Il n'est pas nécessaire d'utiliser handle.exe lorsque vous utilisez et connaissez déjà l'explorateur de processus.
BoldAsLove
5

Process Explorer de Sysinternals est en fait assez inutile quand il s'agit de traiter les descripteurs de fichiers (par opposition aux DLL, etc.). Utilisez Windows Resource Monitor, cliquez sur l'onglet CPU. À côté de Poignées associées, tapez le nom du fichier et vous verrez qui l'a ouvert.

Will Nitschke
la source
lire la réponse @heavyd, ce n'est pas inutile. La deuxième partie est toujours une solution valable.
BoldAsLove