我正在使用GetOpenFileName
在C ++中打开文件,是否可以使用lpstrInitialDir
在“计算机”虚拟位置设置初始目录?
谢谢, 李。
答案 0 :(得分:3)
GetOpenFileName
无法实现这一点,因为您要使用的位置不是文件系统的一部分。相反,它是更广泛的shell命名空间的一部分。
如果查看GetOpenFileName
的文档,您会看到它已被Common Item Dialogs取代(事实上已超过10年)。这些对话框允许您将初始文件夹指定为shell项目。
答案 1 :(得分:1)
如果您需要支持早于IFileDialog
{Vista}的旧版Windows,请尝试指定Shell文件夹GUID。例如,My Computer
GUID为20D04FE0-3AEA-1069-A2D8-08002B30309D
。您可以这样指定:
ofn.lpstrInitialDir = "::{20D04FE0-3AEA-1069-A2D8-08002B30309D}";
然而,值得注意的是,由于behavioral changes
,这种方法几乎注定要在Windows 7及更高版本上失败因此,最好在Vista上使用IFileDialog
,之后再使用。