我正在尝试使用 C++ 中的 Win32 句柄获取文件的名称。
我还有两个担心,文件可能是空的(打开文件可能不起作用),并且我不能使用 Windows Vista 及更高版本支持的所有花哨的功能(例如 GetFinalPathNameByHandle)。
谢谢您的帮助!
我不知道win32,但我知道sysinternals 进程资源管理器。Google 提出了一个开源替代方案:http: //processhacker.sourceforge.net/
也许研究该代码将使您能够做到这一点。
对于 XP+,您可以映射文件然后调用GetMappedFileName
它将返回名称(尽管不是目录)。请参阅从文件句柄获取文件名。
GetMappedFilename()
尽管在 MSDN 中推荐,但这并不是最好的解决方案。
我已经发布了完全符合您想要复制和粘贴的代码: How to get name associated with open HANDLE