Как получить путь к рабочему столу в gnome - PullRequest
7 голосов
/ 05 декабря 2010

Я использую gnome / Ubuntu-10.10 на китайском языке, и путь к рабочему столу не "~ / Desktop", а "~ / XXXX", где XXXX обозначает перевод "Desktop" на китайском языке.Итак, как написать код, чтобы получить правильный путь к рабочему столу независимо от языка системы?Я заметил, что Qt SDK правильно добавил ярлык на рабочий стол, так что я думаю, что есть способ.Большое спасибо!

Ответы [ 6 ]

16 голосов
/ 06 декабря 2010

Еще один способ сделать это:

dir=$(xdg-user-dir DESKTOP)
4 голосов
/ 06 декабря 2010

Расположение пользовательских каталогов описано в спецификации xdg-user-dirs . Они предоставляют код здесь , который вы можете скопировать, чтобы найти имя каталога рабочего стола в вашем коде.

2 голосов
/ 12 ноября 2011

Если вы используете Glib, вы можете сделать

const char *desktop_dir = g_get_user_special_dir (G_USER_DIRECTORY_DESKTOP);

Это правильно обращает внимание на переменные окружения XDG и все такое.

2 голосов
/ 24 августа 2011
echo ${XDG_DESKTOP_DIR:-$HOME/Desktop}

отлично работает на локальном диске Linux, а также когда /home/<user> сопоставлен с диском nfs.

1 голос
/ 04 сентября 2014

На самом деле, это лучший ответ, предоставленный 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}
1 голос
/ 05 декабря 2010

Я еще не тестировал, но попробуйте echo echo ${XDG_DESKTOP_DIR:-$HOME/Desktop}, возможно, этот cmd сделает работу.

...