如何使用Win32 Handle在C ++中获取文件的名称?

时间:2012-04-16 06:20:08

标签: c++ file winapi

我正在尝试使用C ++中的Win32句柄获取文件名。

我还有两个问题,文件可能是空的(打开文件可能不起作用),我不能使用Windows Vista及更高版本支持的所有花哨功能(例如GetFinalPathNameByHandle)。

感谢您的帮助!

3 个答案:

答案 0 :(得分:1)

对于XP +,您可以映射文件,然后调用GetMappedFileName,它将返回名称(尽管不是用于目录)。请参阅Obtaining a File Name From a File Handle

答案 1 :(得分:0)

我不知道win32,但我确实知道sysinternals进程资源管理器。 Google提出了一个开源替代方案:http://processhacker.sourceforge.net/

也许研究那段代码可以让你做到这一点。

答案 2 :(得分:0)

尽管在MSDN中推荐使用,但

GetMappedFilename()并不是最佳解决方案。

我已经发布了完全符合您要复制和粘贴的代码: How to get name associated with open HANDLE