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();
Foi útil?

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
scroll top