Como posso impedir que os arquivos sejam abertos no System?

1

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?

    
por Renan 10.03.2015 / 17:07

1 resposta

1

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 usar o ProcessExplorer para ver qual processo (se houver) tem um identificador no arquivo:

  • Ctrl + L (mostra o painel inferior)
  • No painel inferior, Ctrl + F para o nome do arquivo
por 10.03.2015 / 18:02