특정 응용 프로그램에서 어떤 파일을 열 수 있습니까?


21

Windows의 특정 프로세스에서 현재 열려있는 모든 파일을 나열하는 방법이 있습니까?

나는 파일을 가지고 fopen있지만 fclose특정 프로세스에 의해 결코 얻지 못한 파일을 의미합니다 .

Sysinternals Process Monitor를 사용하려고했지만 현재 열려있는 파일을 나열하는 방법을 알 수 없었지만 파일이 열릴 때만 가능했습니다.


관련 질문 (이 질문에 대한 관련 답변 포함) : stackoverflow.com/questions/15708/lsof-equivalent-for-windows
Anderson Green

답변:


17

프로세스 모니터 대신 Sysinternals Process Explorer 를 사용해 볼 수 있습니다. 프로세스 모니터는 프로세스가 수행하는 작업을 관찰하기위한 설계입니다. 프로세스 탐색기는 프로세스의 현재 상태를보다 잘 보여줍니다. 작업 관리자이지만 기능은 약 10 배입니다.

Sysinternals handle.exe에는 프로세스가 어떤 파일을 열 었는지 알려주는 명령 줄 도구도 있습니다.


29

Sysinternals에서 프로세스 탐색기 를 확인하십시오 .

프로세스의 열린 파일을 보려면 목록에서 프로세스를 선택하고보기-> 하단 패널보기-> 핸들 메뉴 옵션을 선택하십시오. "File"유형의 모든 핸들은 열린 파일입니다.

또한 파일이 열려있는 응용 프로그램을 찾는 가장 좋은 방법은 찾기-> 핸들 또는 DLL 메뉴 옵션을 사용하는 것입니다. 찾고자하는 파일 이름을 입력하고 "검색"을 누르면 파일이 검색 문자열과 일치하는 프로세스를 찾을 수 있습니다.


4
Sysinternals에서 아무것도 +1 ... btw, 직접 링크 : live.sysinternals.com/procexp.exe
fretje

그가 사용하고있는 도구에 대한 문제를 해결 한 +1 IMO 이것이 정답이어야합니다. 이미 프로세스 탐색기를 사용하고 있고 익숙한 경우 handle.exe를 사용할 필요가 없습니다.
BoldAsLove 16:29

5

Sysinternals의 Process Explorer는 파일 핸들을 처리 할 때 실제로는 쓸모가 없습니다 (DLL 등과 반대). Windows 리소스 모니터를 사용하여 CPU 탭을 클릭하십시오. 연결된 핸들 옆에 파일 이름을 입력하면 파일을 연 사람을 볼 수 있습니다.


쓸데없는 @heavyd 답변을 읽으십시오. 두 번째 부분은 여전히 ​​유효한 솔루션입니다.
BoldAsLove 16:29

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.