Подтвердить что ты не робот

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

Я хотел бы добавить следующую функцию в свое кросс-платформенное приложение PyQt4: когда пользователь выбирает какой-то файл и выбирает действие "удалить" на нем, этот файл будет перемещен в папку корзины, а не удаленно удален. Я думаю, что я могу найти решение для Windows с помощью Win32 API или что-то подобное, но я хотел бы знать, что аналогичная операция может быть выполнена на Ubuntu/Linux и MaxOSX, а также с помощью методов PyQt4.

4b9b3361

Ответ 2

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

Здесь сайт обсуждает концепцию мусора в Nautilus и еще один для KDE.

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

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

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

EDIT: Суперпользователь имеет некоторое обсуждение, показывающее, что .DS_Store действительно хранит информацию об поврежденных файлах, но не имеет никаких особенностей формата.

Ответ 3

лучшее решение OSX Я знаю, использует Applescript. Я, однако, не изобрел его, поэтому я просто свяжусь с ним здесь.

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