2012-04-11 2 views
1

Windows 플랫폼 용으로 유지 관리하는 응용 프로그램 모음이 있습니다. 최근에 공유 라이브러리에 코드가 추가되어 앱이 완료된 후에 디렉토리가 삭제되었습니다. 한 응용 프로그램에서는 삭제가 성공적입니다. 다른 쪽에서는 파일이 다른 프로세스에서 사용 중임을 알리는 메시지가 나타납니다.프로세스가 열려있는 파일은 어디입니까?

프로세스 탐색기를 다운로드 한 후 폴더를 보유하고있는 프로세스가 삭제하려고 시도했음을 이미 알았습니다.

답변을 검색 할 때 "XYZ"가 Unlocker, Process Explorer 등인 경우 "파일을 보유하고있는 프로세스를 확인하려면 XYZ를 다운로드 한 다음 해당 프로세스를 닫아야합니다." 파일을 보유하고있는 프로세스를 알고 있지만 종료하면 어떻게 폴더를 삭제할 수 있습니까?

누구든지 폴더를 열어 놓은 코드를 찾는 방법에 대한 아이디어가 있습니까? 어떤 프로세스가 어떤 파일을 사용하고 있는지 찾아내는 데 사용할 수있는 도구 중 어떤 것이 프로세스에서 폴더가 열려 있는지 찾을 수 있습니까?

+0

프로그램에서 파일을 연 경우 파일을 삭제하기 전에 닫아야합니다. 좀 더 정확한 도움말을 원하면 코드 –

+0

을 게시해야합니다. 아마도 해당 디렉토리에 쓰는 코드일까요? 이 코드를 게시하는 것에 대해 어떻게 생각하십니까? – Steve

+0

나는'fstream' 객체에 대한 프로그램 스택을 검사하고 그것들이 닫혀 있는지 여부를 검사 할 것입니다. – suszterpatt

답변

1

파일이 열려있는 "프로세스의 위치"개념이 없습니다. 예 : 의도하지 않은 열린 파일의 매우 일반적인 원인은 유출 된 핸들입니다. 이는 프로세스에서 파일 핸들의 위치가 더 이상 존재하지 않기 때문에 파일이 정확하게 열려 있음을 의미합니다.