使用 Qt 在 Windows 中查找特殊文件夹列表
是否可以使用 Qt 4.7.4 获取 Windows 7 中的特殊文件夹列表 我需要知道操作系统安装在哪个目录以及我对哪些文件夹具有写访问权限。 特殊文件夹将包括“桌面”、“程序数据”等文件夹...... 这些文件夹可能会也可能不会隐藏。
感谢您的时间和回复。 先感谢您。
Is it possible to get a list of the Special Folders in Windows 7 using Qt 4.7.4
I need to know in which directory the Operating System is installed and which folders I have write- access to.
Special Folders will include folders like 'Desktop', 'Program Data', etc....
These folders may or may not be hidden.
I appreciate your time and response.
Thank you in advance.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
一些选项:
Qt 已经在 QDesktopServices 中提供了通往其中许多(跨平台)的路径。该方法是
QDesktopServices::storageLocation(StandardLocation)
。对于某些情况,您可以使用qgetenv(如上所述)。
如果以上方法均失败,您可以直接调用 Shell32 库中的 SHGetSpecialFolderPath 方法。可以在 微软网站。
以下是最后一个示例:(
实际上,
SHGetSpecialFolderPath
已被 SHGetKnownFolderPath 从 Vista 开始,所以如果您知道自己只是针对 Windows 7,您应该使用它来代替。 rel="nofollow">KNOWNFOLDERID 值。)A few options:
Qt already has paths to many of these (cross-platform) in QDesktopServices. The method is
QDesktopServices::storageLocation(StandardLocation)
.For some, you can use qgetenv (as mentioned above).
If all else fails, you can directly call the SHGetSpecialFolderPath method in the Shell32 library. The list of possible options can be found on Microsoft's site.
Here is a sample of the last:
(Actually,
SHGetSpecialFolderPath
has been superseded by SHGetKnownFolderPath as of Vista, so if you know you are only targeting Windows 7, you should use that instead. It uses a KNOWNFOLDERID value.)您可以使用 stdlib 中的 getenv 。
例如:您可以在环境变量
windir
下找到操作系统的安装路径。其他示例:
您可以在此处找到更多示例
代码示例:
记住检查是否
getenv
返回 null,特别是对于您自己设置的环境变量。You could use the getenv from stdlib.
For example: You can find the path where the OS is installed under the environment variable
windir
.Other examples:
You can find more examples here
Code example:
Remember to check if
getenv
returned null, especially for environment variables which you set yourself.尝试使用 QtGlobal::qgetenv。它获取环境变量,并且 这里是 Windows 7 上可用的变量列表。
Try using QtGlobal::qgetenv. It get the environment variables, and here is the list of variables available on windows 7.