2011-03-16 31 views
3

任何人都可以告訴我如何使用C語言命令獲取桌面路徑(環境變量)。如何使用C語言查找桌面路徑?

場景是我想在桌面上保存一個文件。我能做的只是給出一個固定的桌面路徑和文件名來保存文件。但是在給出這個固定路徑之後,我的代碼會變得僵化,並且不會在具有不同桌面路徑(環境變量)的任何其他計算機上工作。 我的問題是,我可以通過使用C語言捕獲桌面環境變量,使我的代碼概括可以在任何基於Windows的機器上工作嗎?

問候

+2

@Erik它說Windows的問題。我添加了「windows」標籤。 – mgiuca 2011-03-16 01:26:52

回答

3

可以使用功能getenv()訪問環境變量:

環境變量 的值可以用getenv的 功能進行訪問。這在 頭文件stdlib.h中聲明。如果追加\Desktop它(見the link由mgiuca提供,例如)

對於Windows系統,USERPROFILE應該不錯。請注意,在大多數情況下,路徑將包含空格,因此應相應處理它。

此外,使用環境變量獲取桌面文件夾的路徑不是最好的方式,並且在某些情況下可能無法正常工作(另請參閱其他SO對此主題的回答,如this one),所以請將此答案看作是回答你的具體問題,尤其是「C++環境變量」部分。

+2

+1。我正要說同樣的事情,並且我找到了一個推薦這種方法的來源(http://www.wilsonmar.com/1envvars.htm)。 (搜索該頁面的「桌面」。) – mgiuca 2011-03-16 01:27:30

+4

@schnaader,@mgiuca:互聯網上有很多不好的建議。使用'%USERPROFILE%\ Desktop'作爲桌面路徑就是一個例子。 – 2011-03-16 01:32:49

+0

不保證在所有情況下定義環境變量。他們主要是對你很好,但程序使用API​​。 – Joey 2011-03-16 01:33:49