ไฟล์ใดบ้างที่เปิดโดยแอพพลิเคชั่นเฉพาะ


21

มีวิธีในการแสดงรายการไฟล์ทั้งหมดที่เปิดอยู่โดยกระบวนการเฉพาะใน Windows หรือไม่?

ฉันหมายถึงไฟล์ที่มีfopenแต่ไม่เคยได้รับfcloseจากกระบวนการเฉพาะ

ฉันพยายามใช้ Sysinternals Process Monitor แต่ฉันไม่สามารถหาวิธีแสดงรายการไฟล์ที่เปิดอยู่ในปัจจุบัน - แต่เมื่อเปิดเท่านั้น


คำถามที่เกี่ยวข้อง (พร้อมคำตอบที่เกี่ยวข้องกับคำถามนี้): stackoverflow.com/questions/15708/lsof-equivalent-for-windows
Anderson Green

คำตอบ:


17

คุณสามารถลอง Sysinternals Process Explorerแทน Process Monitor การตรวจสอบกระบวนการคือการออกแบบสำหรับการดูกระบวนการที่ทำเช่นนั้น Process Explorer นั้นเพิ่มเติมสำหรับการดูสถานะปัจจุบันของกระบวนการ มันเป็นตัวจัดการงาน แต่มีฟังก์ชั่นประมาณ 10 เท่า

Sysinternals ยังมีhandle.exeเครื่องมือบรรทัดคำสั่งที่บอกให้คุณทราบว่าไฟล์ใดที่กระบวนการเปิดอยู่


29

ลองใช้Process Explorerจาก Sysinternals

หากต้องการดูไฟล์ที่เปิดอยู่สำหรับกระบวนการให้เลือกกระบวนการจากรายการเลือกตัวเลือกเมนูมุมมอง> แผงด้านล่าง -> จัดการ หมายเลขอ้างอิงทั้งหมดของประเภท "ไฟล์" เป็นไฟล์ที่เปิดอยู่

นอกจากนี้วิธีที่ยอดเยี่ยมในการค้นหาแอปพลิเคชันที่มีไฟล์เปิดอยู่คือใช้ตัวเลือกเมนู Find-> Handle หรือ DLL เพียงแค่ใส่ชื่อของไฟล์ที่คุณกำลังค้นหาและกด "ค้นหา" เพื่อค้นหากระบวนการที่มีไฟล์เปิดอยู่ตรงกับสตริงการค้นหา


4
+1 สำหรับอะไรจาก Sysinternals ... BTW, การเชื่อมโยงโดยตรง: live.sysinternals.com/procexp.exe
fretje

+1 สำหรับการแก้ปัญหาของเขาด้วยเครื่องมือที่เขาใช้ IMO นี่ควรเป็นคำตอบที่ถูกต้อง ไม่จำเป็นต้องใช้ handle.exe เมื่อคุณใช้และคุ้นเคยกับ process explorer แล้ว
BoldAsLove

5

Process Explorer จาก Sysinternals ค่อนข้างไร้ประโยชน์จริง ๆ เมื่อมันมาถึงการจัดการกับการจัดการไฟล์ (ตรงข้ามกับ DLL ฯลฯ ) ใช้ Windows Resource Monitor คลิกที่แท็บ CPU ถัดจากตัวจัดการที่เกี่ยวข้องพิมพ์ชื่อของไฟล์และคุณจะเห็นว่าใครเป็นคนเปิด


อ่านคำตอบ @heavyd มันไม่ได้ไร้ประโยชน์ ส่วนที่สองยังคงเป็นโซลูชันที่ถูกต้อง
BoldAsLove

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.