Перемещение файлов в Trash Can в Linux с использованием С++
Я пытаюсь переместить (удалить) файл в Trash Can (в Linux) с помощью С++ (также используя QT4 для GUI). К сожалению, это довольно сложно сделать, и насколько я могу судить, для этого нет единого API.
Я бы хотел, чтобы мое приложение запускалось не только в KDE, но и в GNOME, Xfce и других средах рабочего стола Linux. Вот почему я ищу более универсальный подход.
Самое лучшее, что я смог найти, это:
- send2trash - но это использование Python/QT4, а не С++/QT4
- trash-cli - у этого есть недостаток автономной командной строки, а не библиотеки
Я был бы доволен любым подходом, который требует как можно меньшего рабочего кода для среды рабочего стола. Или, другими словами, насколько это возможно независимо от компонентов KDE/GNOME/Xfce.
Было бы полезно получить любую помощь в поиске решения (если оно есть).
Ответы
Ответ 1
Ответ находится в
http://www.freedesktop.org/wiki/Specifications/trash-spec
Для каждого пользователя каталог "home trash" ДОЛЖЕН быть доступен. Его имя и местоположение: $XDG_DATA_HOME/Корзина
вам нужно всего лишь написать код на С++, переместите файл в такой каталог.
Вы можете перемещать файлы с помощью повысить файловую систему, и вы можете получить значение XDG_DATA_HOME с помощью cstlib getenv.
Ответ 2
Насколько я знаю, в Linux нет стандартного мусора.
Ответ 3
Почему бы не найти команду терминала для перемещения файлов, а затем вызвать system(), чтобы запустить ее для вас внутри вашей программы на С++?
Этот мог бы (я его не тестировал) быть возможным однострочным в Linux, чтобы переместить файлы в корзину через терминал. Вы просто передадите команду в качестве строки с кавычками в system()
и вызовите ее в своей реализации на С++.