【问题标题】:SHGetFolderPath Download folderSHGetFolderPath 下载文件夹
【发布时间】:2015-03-10 12:32:00
【问题描述】:

我如何获得“下载”文件夹路径?

我只是在 CSIDL's 中没有看到它,我可以将“下载”附加到另一个值,但“下载”可能不是取决于用户的语言?

我在 KNOWNFOLDERID (FOLDERID_Downloads) 中看到了它,但那是 Vista 及更高版本。

【问题讨论】:

  • 所以它在 Vista 和更新版本中仅作为定义的实体,它没有 CSIDL,因为这些是针对旧版本的 Windows。您应该使用较新的 API,例如SHGetKnownFolderPath,使用文件夹ID
  • 您链接的KNOWNFOLDERID 文档明确指出没有CSIDLCSIDL 等效 - 无传统默认路径 - 不适用 i>.
  • 您阅读的文档是正确的。此文件夹可从 Vista 开始使用。
  • 也可以在 Python 中查看这个实现:stackoverflow.com/questions/35851281/…

标签: c++ windows visual-studio


【解决方案1】:

要获取下载文件夹,您必须在 Vista 或更新版本上运行。该文件夹未在旧版本的 Windows 上定义。

它没有CSIDL,因为它是为在新的SHGetKnownFolderPath API 中使用而创建的,而不是在SHGetFolderPath API 中使用。

如果你想得到真正的文件夹,你必须使用新的 API。如果您想在旧版本的 Windows 上保持某种“兼容性”,如果 API 对您不可用,您可以使用KNOWNFOLDERID 页面中列出的默认值。您可以使用运行时链接来使用 API 以允许应用程序在旧版本的 Windows 上运行。

在 SHGetKnownFolderPath 的备注下,确实提到:

此函数替换 SHGetFolderPath。那个旧函数现在只是 SHGetKnownFolderPath 的包装器。

【讨论】:

  • 谢谢,一定是什么东西在我的 XP 机器上创建了一个“下载”文件夹,这让我大笑。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2013-10-13
  • 2020-08-25
  • 2021-05-28
  • 2019-02-20
  • 2020-04-24
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多