Pergunta

Gostaria de adicionar o próximo recurso ao meu aplicativo PYQT4 de plataforma cruzada: quando o usuário selecionar algum arquivo e selecionar a ação "Remover", que o arquivo será movido para reciclar a pasta da lixeira em vez de ser removido permanente. Acho que posso encontrar uma solução específica do Windows usando a API Win32 ou algo semelhante, mas gostaria de saber que operação semelhante pode ser executada no Ubuntu/Linux e Maxosx, bem como por métodos PYQT4.

Foi útil?

Solução

É bom que você esteja usando o Python, criei uma biblioteca para fazer isso há um tempo atrás:

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

Em Pypi: Send2trash

Instalação

Usando conda:

conda install Send2Trash

Usando PIP:

pip install Send2Trash

Uso

Excluir arquivo ou pastas

from send2trash import send2trash
send2trash("directory")

Outras dicas

Eu acho que realmente não há solução de plataforma cruzada fornecida pelo QT e não é uma tarefa totalmente trivial implementar o conceito de lixo no Linux, pois é um pouco diferente com base em qual gerenciador de arquivos está em uso.

Aqui está um site discutindo o conceito de lixo em Nautilus e outro para KDE.

Sob Windows, você pode usar a API Win32 como disse. Solução Python disponível aqui.

O Mac OS X coloca os arquivos destruídos em ~/.Trash semelhantes a outros *Nix OSes, mas não consegui pesquisar rapidamente nenhuma documentação para ele. Parece que o arquivo de informações do lixo do OS X é algum tipo de formato binário e não um texto simples, como no Linux.

O Symbian não tem um conceito de desktop e, portanto, nenhum conceito de lixo também. Pode ser semelhante para outras plataformas móveis.

EDITAR: Superusuário tem alguma discussão revelando que .ds_store realmente armazena informações sobre arquivos destruídos, mas não há detalhes sobre o formato.

o Melhor solução OSX Eu sei que usa AppleScript. No entanto, não o inventei, então vou simplesmente vincular aqui.

Seria bom ter um módulo que empacotasse as soluções Win32/KDE/OSX em uma, eu sinto e importei o correto sob demanda. Foi assim que você resolveu seu problema no final?

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top