Como posso desbloquear um arquivo que está bloqueado por um processo em .NET [duplicado]

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

Pergunta

Esta questão já tem uma resposta aqui:

Eu quero meu aplicativo para limpar todos os arquivos temporários que costumava, o problema é que nem todos os arquivos temporários estão sob meu controle, então eu só quero "brutal" desbloqueá-los, a fim de excluí-los através de programação.

Foi útil?

Solução

Dê uma olhada este artigo. Eu acho que você vai lutar para fazer isso em C # nativo, mesmo usando interoperabilidade, mas escrever um ++ / CLI wrapper do assembly pode ser um bom compromisso C. Note também que o usuário precisa ter o privilégio SE_DEBUG para que isso funcione.

Outras dicas

Eu tenho lutado com isso tão bem, e acabou apenas descascar para fora para a implementação de linha de comando do Unlocker. No meu caso, tem de executar muitas vezes ao dia e acaba desbloquear milhares de arquivos por dia sem qualquer problema.

Com certeza, da sua aplicação está querendo limpar os arquivos temporários que possui, então você tem controle total para desbloquear esses arquivos e excluí-los!

Se você está querendo apagar todos os arquivos temporários, seja de propriedade da sua aplicação ou não, você deve ter muito cuidado. O aplicativo original provavelmente aplicado o bloqueio porque quer usar o arquivo!

Se você realmente precisa, você sempre pode gerar um aplicativo de linha de comando em vez de tentar replicar a funcionalidade das ferramentas existentes que será difícil em C #.

Confira este enfiar nos fóruns do MSDN. Não há informação suficiente para fazer o que quiser, mas não é recomendado.

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