C++에서 Win32 핸들을 사용하여 파일의 이름을 가져 오려고합니다.Win32 핸들을 사용하여 C++에서 파일 이름을 가져 오는 방법은 무엇입니까?
파일이 비어있을 수 있습니다 (파일 열기가 작동하지 않을 수 있음). Windows Vista 이상에서 지원되는 멋진 기능 (예 : GetFinalPathNameByHandle)을 사용할 수 없습니다.
도움 주셔서 감사합니다.
C++에서 Win32 핸들을 사용하여 파일의 이름을 가져 오려고합니다.Win32 핸들을 사용하여 C++에서 파일 이름을 가져 오는 방법은 무엇입니까?
파일이 비어있을 수 있습니다 (파일 열기가 작동하지 않을 수 있음). Windows Vista 이상에서 지원되는 멋진 기능 (예 : GetFinalPathNameByHandle)을 사용할 수 없습니다.
도움 주셔서 감사합니다.
XP +의 경우 파일을 매핑 한 다음 GetMappedFileName
을 호출하면 이름이 반환됩니다 (디렉토리는 제외). Obtaining a File Name From a File Handle을 참조하십시오.
win32는 모르겠지만 sysinternals 프로세스 탐색기에 대해 알고 있습니다. Google은 오픈 소스 대안을 제안했습니다. http://processhacker.sourceforge.net/
어쩌면 그 코드를 공부하면 도움이 될 것입니다.
GetMappedFilename()
은 MSDN에서 권장하지만 최상의 솔루션은 아닙니다.
난 당신이 사본을 준비하고자 여기에 붙여 정확히 수행하는 코드 게시 : How to get name associated with open HANDLE
는 "처리기"는 무엇을 의미합니까를? POSIX 파일 기술자? C stdio FILE? C++ iostreams fstream? Win32 API는 뭔가? 다른 Qt는? –
나는 그가'CreateFile'에서받은 Win32'HANDLE '을 의미한다고 생각하십니까? –
그는 그것을 말해야합니다! 그리고 'winapi'로 질문에 태그를 답니다. C++ 질문이 아니라 Windows 프로그래밍 질문입니다. –