2010-12-05 14 views
7

中国語でgnome/Ubuntu-10.10を使用していますが、デスクトップパスは「〜/ Desktop」ではなく「〜/ XXXX」です.XXXは「Desktop」 "だから、どのようにシステムの言語に関係なく、デスクトップの適切なパスを取得するコードを記述する?私は、Qt SDKがデスクトップにショートカットを正しく追加したことに気づいたので、方法があると思います。どうもありがとう!gnomeでデスクトップのパスを取得する方法

+1

この質問は –

+2

スーパーユーザである必要があり、「関係なく、システム言語のデスクトップの適切なパスを取得するためにコードを書くためにどのように?」 - 私にプログラミングのように聞こえる。 –

答えて

1

私はまだテストしていませんが、echo echo ${XDG_DESKTOP_DIR:-$HOME/Desktop}を試してみてください。このcmdが多分動作します。

+0

それは動作します。ありがとう! – FlareCat

+4

ローカライズされたデスクトップでは動作しません。 dir = $(xdg-user-dir DESKTOP)は動作しましたが、 – neuro

4

ユーザーディレクトリの場所は、xdg-user-dirsの仕様で記述されています。彼らはあなたのコード内からデスクトップディレクトリの名前を検索するためにコピーできるいくつかのコードhereを提供しています。それを行うには

13

もう一つの方法:

dir=$(xdg-user-dir DESKTOP) 
+0

+1:私のために働きます。 XDG_DESKTOP_DIRが定義されていないため、FFireの解決策はありません – neuro

2
echo ${XDG_DESKTOP_DIR:-$HOME/Desktop} 
ローカルのLinuxドライブに正常に動作しても /home/<user>はNFSドライブにマップされたときに

2

あなたは口が達者を使用している場合、あなたは

const char *desktop_dir = g_get_user_special_dir (G_USER_DIRECTORY_DESKTOP); 

を行うことができますこれは、適切XDG環境変数とすべてのことに注意を払っています。

1

は実は、これはxdg-user-dirs specsが提供する最良の答え、次のとおりです。

test -f ${XDG_CONFIG_HOME:-~/.config}/user-dirs.dirs && source ${XDG_CONFIG_HOME:-~/.config}/user-dirs.dirs 
echo ${XDG_DESKTOP_DIR:-$HOME/Desktop} 
echo ${XDG_DOWNLOAD_DIR:-$HOME} 
関連する問題