
Tenho um programa (uma versão antiga do Delphi) que precisa criar um arquivo temporário sempre que for aberto. O problema é que ele pode criar esse arquivo, mas não pode substituí-lo; portanto, sempre que tento abri-lo, primeiro preciso mover o arquivo para outro lugar.
O arquivo é criado na pasta temporária (userfolder\AppData\Local\Temp). Posso movê-lo para qualquer lugar, posso renomeá-lo, mas não posso excluí-lo.
Então, criei uma pasta separada para onde posso mover o arquivo temporário. Recebo uma cópia toda vez que quero abrir o programa, por isso renomeei essas cópias. Mas há muitos deles agora e eu gostaria de me livrar deles.
Quando tento excluir um, recebo uma mensagem que diz:
A ação não pode ser concluída porque o arquivo está aberto no sistema
O engraçado é que mesmo que eu reinicie o sistema, quando vou para a pasta separada que criei para conter esses arquivos e tento excluir um, ainda recebo essa mensagem.
Eu tentei:
- Atribuir a mim mesmo a propriedade dos arquivos (eles pertencem originalmente ao Sistema);
- Atribuir permissões a outras contas de usuários, incluindo “Todos”, e garantir que todos tenham permissão para excluir os arquivos;
- Removendo todos os atributos do arquivo;
- Reinicializando, conforme mencionado acima. Eu até fiz isso várias vezes;
- Alterar não apenas nomes de arquivos, mas também extensões;
- Unlocker (programa que promete resolver esse tipo de problema, mas não funcionou para mim);
- Passando pelo prompt de comando. Apenas diz
access denied
.
O que mais posso tentar? Como posso evitar que o processo do sistema abra esses arquivos para que eu possa me livrar deles?
Responder1
Boa lista de ideias. Outras coisas mais extremas para tentar:
- Inicialize no modo de segurança
- Monte o disco em outra máquina
Você pode usarExplorador de processospara ver qual processo (se houver) tem um identificador no arquivo:
- Ctrl+L (mostrar painel inferior)
- No painel inferior, Ctrl+F para o nome do arquivo