【问题标题】:How to find desktop path using C language?如何使用 C 语言查找桌面路径?
【发布时间】:2011-03-16 10:02:40
【问题描述】:

谁能告诉我如何使用 C 语言命令获取桌面路径(环境变量)。

场景是我想在桌面上保存一个文件。我能做的就是给一个固定的桌面路径和一个文件名来保存文件。但是在给出这个固定路径之后,我的代码将变得僵硬,并且无法在具有不同桌面路径(环境变量)的任何其他计算机上运行。 我的问题是,我可以通过捕获 desktop 的环境变量,使用 C 语言使我的代码泛化它可以在任何基于 Windows 的机器上运行吗?

问候

【问题讨论】:

  • @Erik 在问题中说 Windows。我已经添加了“windows”标签。

标签: c windows


【解决方案1】:
【解决方案2】:

您可以使用函数getenv()访问环境变量:

环境变量的值 可以使用 getenv 访问 功能。这是在声明中声明的 头文件stdlib.h。

对于 Windows 系统,如果您将 \Desktop 附加到 USERPROFILE 上,它应该是好的(例如,参见 mgiuca 提供的 the link)。请注意,路径在大多数情况下都会包含空格,因此请相应地处理。

另外,使用环境变量来获取桌面文件夹的路径不是最好的方法,并且在某些情况下可能不起作用(另请参阅此主题的其他 SO 答案,如 this one),因此请将此答案视为回答您的具体问题,尤其是“C++ 中的环境变量”部分。

【讨论】:

  • +1。我正要说同样的话,我发现一个消息来源推荐这种方法here。 (在该页面中搜索“桌面”。)
  • @schnaader, @mgiuca:互联网上有很多不好的建议。使用%USERPROFILE%\Desktop 作为桌面路径就是一个例子。
  • 环境变量不保证在所有场景中都定义。它们对您来说主要是一个不错的选择,但从程序中使用 API。
  • @Ben,Joey:好的,编辑了我的答案以指出这一点。 @Joey:我很好奇,如果没有定义环境变量,它将为空,所以我们至少可以检测到它不起作用的情况并处理它,对吧?
  • 那么如果不可靠的方法A失败了,你会退回到永远可靠的方法B吗?那为什么还要用方法 A 呢?
猜你喜欢
  • 2012-03-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-09-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多