Как получить путь к рабочему столу в gnome

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

6 ответов


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


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

dir=$(xdg-user-dir DESKTOP)

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


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

const char *desktop_dir = g_get_user_special_dir (G_USER_DIRECTORY_DESKTOP);

это правильно обращает внимание на переменные среды XDG и все такое.


echo ${XDG_DESKTOP_DIR:-$HOME/Desktop}

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


на самом деле, это лучший ответ, предусмотренных кода валюты XDG-пользователей-каталоги спецификаций:

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}