Как я могу переместить файл в корзину / мусорное ведро на разных платформах с помощью PYQT4?

StackOverflow https://stackoverflow.com/questions/3628517

Вопрос

Я хотел бы добавить следующую функцию на мою кроссплатформу PYQT4 приложения: когда пользователь выбирает какой-то файл и выберите «Удалить» действие на нем, что файл будет перемещен в папку Recycle Bin вместо того, чтобы быть перенесенным. Я думаю, что смогу найти специфичное решение Windows, используя Win32 API или что-то подобное, но я хотел бы знать, что аналогичная операция может быть выполнена на Ubuntu / Linux и Maxosx, а также через методы PYQT4.

Это было полезно?

Решение

Это хорошая вещь, которую вы используете Python, я создал библиотеку, чтобы сделать только что-то время назад:

http://www.hardcoded.net/articles/send-files-to-trash-on-all-platforms.htm.

На pypi: Send2trash.

Установка

Использование CODA:

conda install Send2Trash

Использование PIP:

pip install Send2Trash

использование

Удалить файл или папки

from send2trash import send2trash
send2trash("directory")

Другие советы

Я думаю, что на самом деле нет перекрестной платформы, предоставляемого QT, и это не полностью тривиальная задача для реализации концепции мусора в Linux, поскольку она немного отличается от того, какой файловый менеджер используется.

Вот сайт, обсуждающий концепцию мусора в Наутилус и еще один для Потрясающий.

Под Windows вы можете использовать API Win32, как вы сказали. Решение Python доступно здесь.

Mac OS X ставит разбитые файлы в ~ / .trash, похоже на другие * nix oSes, но я не мог быстро Google любую документацию для него. Похоже, что информационный файл OS X Trash - это какой-то двоичный формат, а не просто текст, как в Linux.

Symbian не имеет концепции настольных компьютеров и, следовательно, концепция мусора. Это может быть похоже для других мобильных платформ.

РЕДАКТИРОВАТЬ: Супер пользователь Имеет некоторое обсуждение, раскрывающее, что .ds_store действительно хранит информацию о разбитых файлах, но нет специфики по поводу формата.

То Лучшее решение OSX Я знаю использует AppleScript. Однако я не изобрел, поэтому я просто ссылаюсь на это здесь.

Было бы неплохо иметь модуль, который упаковывает решения Win32 / KDE / OSX в один, я чувствую, и импортировал правильный по требованию. Это как вы решили свою проблему в конце?

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top