Eu 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 ele não pode sobrescrevê-lo, então, sempre que eu tentar abri-lo, preciso mover o arquivo para outro lugar primeiro.
O arquivo é criado na pasta temporária (pasta do usuário \ AppData \ Local \ Temp). Eu posso movê-lo para qualquer lugar, posso renomeá-lo, mas não consigo deletá-lo.
Então eu criei uma pasta separada onde eu posso mover o arquivo temporário. Eu recebo uma cópia toda vez que eu quero abrir o programa, então eu tenho renomeado essas cópias. Mas há muitos deles agora e eu gostaria de me livrar deles.
Quando tento excluir um, recebo uma mensagem:
The action can’t be completed because the file is open in System
O engraçado é que, mesmo se eu reiniciar o sistema, quando eu for para a pasta separada que criei para conter esses arquivos e tentar excluir um, ainda recebo essa mensagem.
Eu tentei:
- Atribuir a mim mesmo a propriedade dos arquivos (eles pertencem originalmente ao System);
- Atribuindo permissões a outras contas de usuário, incluindo "Todos", e certificando-se de que todas elas tenham permissão para excluir os arquivos;
- Removendo todos os atributos de arquivo;
- Reiniciando, conforme mencionado acima. Eu até fiz isso várias vezes;
- Alterar não apenas nomes de arquivos, mas também extensões;
- Unlocker (um programa que promete resolver esse tipo de problema, mas não funcionou para mim);
- Percorrendo o prompt de comando. Apenas diz
access denied
.
O que mais eu posso experimentar? Como posso evitar que o processo do sistema abra esses arquivos para que eu possa me livrar deles?