Pergunta

Estou com necessidade novamente de gerenciar uma pasta temporária onde partes de nossos documentos da loja de aplicativos, por exemplo, entre impressão e importação para um DMS.

Esses arquivos devem ser excluídos no desligamento do aplicativo e, idealmente, no aplicativo, também inicia, caso algo denasça errado.

Eu apenas pensei em uma aula simples implementando IDisposable que pode ser usado dentro de main () com uma declaração usando ()-, mas de alguma forma isso parece sujo. Usando Directory.Delete(path, true); Dentro de um bloco de captura que pega tudo IOExceptionS realmente não funcionou de maneira confiável no passado.

Alguma opinião sobre como implementar esse recurso da maneira inteligente? Alguma recomendação?

O caminho real a ser usado não é relevante para nós, mas usamos %AppData%\[Programname]\Temp agora.

É possível criar arquivos realmente temporários no Windows que são excluídos no desligamento?

obrigado pelo seu tempo.

Foi útil?

Solução

Não vejo um problema no uso da abordagem idisposável. Outra alternativa seria usar uma tentativa, finalmente bloqueando a área de desligamento do seu código e insira o código de limpeza no bloco Finalmente, para garantir que ele seja executado. O único problema é que, se você estiver usando um aplicativo com vários threads, convém configurar o manipulador de eventos AppDomainUnHandledException.

Outras dicas

Apenas um aviso. O Windows possui pastas especiais para arquivos temporários: um no perfil do usuário e um windows temp.

Veja bem, se o seu programa não remover arquivos temporários por qualquer motivo, o usuário poderá fazer isso com a ferramenta de limpeza de disco do Windows.

Parece que o Windows não tem temperatura auto-limpada como no *nix. Mas eu encontrei http://www.tek-tips.com/viewthread.cfm?qid=1314337&page=1. Lá, as pessoas sugerem escrever script personalizado que será executado no logoff. Espero que isto ajude.

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