Como você bloquear um arquivo no Windows para bloquear exclusão ou substituição?
Embora existam muitos programas de terceiros para realizar uma tarefa, às vezes você só quer usar um método interno para fazer a mesma coisa. O post de perguntas e respostas do SuperUser de hoje ajuda o leitor a encontrar uma solução integrada incrível para impedir que seus arquivos sejam excluídos ou sobrescritos.
A sessão de perguntas e respostas de hoje nos é oferecida por cortesia do SuperUser - uma subdivisão do Stack Exchange, um agrupamento de sites de perguntas e respostas conduzido pela comunidade..
Screenshot do bloco de notas cortesia de Dan (SuperUser).
A questão
O boboes de leitor SuperUser quer saber se existe um método embutido no Windows 7 e edições mais recentes para bloquear um arquivo e evitar que ele seja sobrescrito ou excluído:
Existe uma maneira de bloquear um arquivo com meios internos para que ele não possa ser excluído ou substituído? Eu preciso bloquear arquivos temporariamente durante o teste de scripts de cópia, a fim de verificar o tratamento de erros nesses scripts. Até o Windows XP, eu iria carregar um arquivo no debug.exe para bloqueá-lo. Existe uma maneira de fazer isso no Windows 7 e em edições mais recentes?
Eu sei que existem programas para fazer isso. Minha pergunta é se existe um mecanismo embutido no Windows 7 e edições mais recentes. Às vezes eu tenho que verificar um script em um PC e não quero instalar novos programas para esse.
Há também algumas boas sugestões aqui: Como bloquear um arquivo com propósito? Infelizmente, eles exigem ferramentas de terceiros ou alteram o arquivo para um estado bloqueado.
Existe um método embutido para fazer isso no Windows 7 e em edições mais recentes?
A resposta
Os colaboradores do SuperUser Dan e Breakthrough têm a resposta para nós. Primeiro, Dan:
Eu acho que o PowerShell é provavelmente a melhor maneira de conseguir isso. Algo como o seguinte:
Enquanto pausado, o script acima faz com que o seguinte prompt seja exibido ao tentar abrir o arquivo “myfile.txt”:
Seguido pela resposta do Breakthrough:
Para os curiosos, aqui está o link do MSDN para o método File :: Open detalhando os parâmetros da chamada (especificamente, o último argumento 'None', declina o compartilhamento do arquivo com quaisquer outros threads / processos). Da mesma forma, existem cláusulas para bloquear o arquivo somente para leitura / gravação ou uma combinação delas.
Tem algo a acrescentar à explicação? Som desligado nos comentários. Quer ler mais respostas de outros usuários do Stack Exchange com experiência em tecnologia? Confira o tópico de discussão completo aqui.