Arquivo de bloqueio para gravar no serviço Windows
-
27-09-2019 - |
Pergunta
Quero bloquear um arquivo para escrever em um serviço do Windows, mas até agora minhas tentativas de obter um bloqueio não estão funcionando. O mesmo código funciona a partir de um aplicativo de console.
Pelo que li, isso é porque bloqueio oportunista não está ativado para o meu serviço.
Como posso impedir que um arquivo seja escrito para travá -lo de um serviço sem recorrer a hacks do registro?
Código para bloquear:
FileStream lockStream = new FileStream(path, FileMode.Open, FileAccess.Read);
Código para desbloquear:
lockStream.Close();
lockStream.Dispose();
Solução
using (fs = new FileStream("somefile.txt", FileMode.Open, FileAccess.Read, FileShare.None))
{ }
Você já usou o modo de compartilhamento de arquivos quando abre o arquivo para ler ou escrever?
Outras dicas
Use um Global Mutex Tendo muito cuidado para liberá -lo (finalmente etc.)
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow