File mana yang dibuka oleh aplikasi tertentu?

21

Apakah ada cara untuk membuat daftar semua file yang saat ini dibuka oleh proses tertentu di Windows?

Maksud saya file yang punya fopen, tetapi tidak pernah didapat fclosedengan proses tertentu.

Saya mencoba menggunakan Sysinternals Process Monitor, tetapi saya tidak tahu bagaimana cara membuat daftar file yang sedang dibuka - tetapi hanya ketika pembukaan terjadi.

penjepit
sumber
Pertanyaan terkait (dengan jawaban yang relevan untuk pertanyaan ini): stackoverflow.com/questions/15708/lsof-equivalent-for-windows
Anderson Green

Jawaban:

17

Anda bisa mencoba Sysinternals Process Explorer alih-alih Process Monitor. Monitor Proses dirancang untuk mengamati proses apa yang dilakukan saat itu. Process Explorer lebih untuk melihat kondisi proses saat ini; itu adalah Task Manager tetapi dengan fungsionalitas sekitar 10x.

Sysinternals juga memiliki handle.exealat baris perintah yang memberi tahu Anda file mana yang prosesnya terbuka.

Dave Webb
sumber
29

Lihat Process Explorer dari Sysinternals.

Untuk melihat file yang terbuka untuk suatu proses, pilih proses dari daftar, pilih opsi menu View-> Lower Panel View-> Handles. Semua pegangan jenis "File" adalah file yang terbuka.

Juga, cara yang bagus untuk menemukan aplikasi mana yang memiliki file terbuka adalah dengan menggunakan opsi menu Find-> Handle atau DLL. Cukup masukkan nama file yang Anda cari dan tekan "Cari" untuk menemukan proses dengan file terbuka yang cocok dengan string pencarian.

astaga
sumber
4
Memberi +1 untuk apa pun dari Sysinternals ... btw, tautan langsung: live.sysinternals.com/procexp.exe
fretje
+1 untuk mengatasi masalahnya dengan alat yang ia gunakan. IMO ini harus jawaban yang benar. Tidak perlu menggunakan handle.exe saat Anda sudah menggunakan dan terbiasa dengan proses explorer.
BoldAsLove
5

Process Explorer dari Sysinternals sebenarnya sangat tidak berguna ketika berurusan dengan menangani file (sebagai lawan dari DLL, dll.). Gunakan Windows Resource Monitor, klik pada tab CPU. Di sebelah Associated Handles ketik nama file dan Anda akan melihat siapa yang membukanya.

Will Nitschke
sumber
baca jawaban @heavyd, tidak sia-sia. Bagian kedua masih merupakan solusi yang valid.
BoldAsLove