获取打开文件名在默认目录打开'Computer'可能吗?

GetOpenFileName open at default directory 'Computer' possible?

本文关键字:Computer 文件名 默认 获取      更新时间:2023-10-16

我正在使用GetOpenFileName以C++打开文件,是否可以使用lpstrInitialDir在"计算机"虚拟位置设置初始目录?

谢谢 李。

这在GetOpenFileName中是不可能的,因为您希望使用的位置不是文件系统的一部分。相反,它是更广泛的 shell 命名空间的一部分。

如果您查看GetOpenFileName的文档,您会发现它已被通用项对话框取代(实际上是 10 多年前)。这些对话框允许您将初始文件夹指定为 shell 项。

如果需要支持早于 Vista 的旧版 Windows(其中IFileDialog不可用),请尝试指定命令行管理程序文件夹 GUID。例如,My ComputerGUID 是20D04FE0-3AEA-1069-A2D8-08002B30309D。您可以像这样指定它:

ofn.lpstrInitialDir = "::{20D04FE0-3AEA-1069-A2D8-08002B30309D}";

但是,值得注意的是,由于行为变化,此方法几乎注定要在Windows 7及更高版本上失败

因此,您最好在Vista及以后的版本上使用IFileDialog