Domanda

voglio bloccare un file per la scrittura da un servizio di Windows, ma finora i miei tentativi di ottenere un blocco non funzionano. Lo stesso codice funziona da un'applicazione console, però.

Da quello che ho letto, questo è perché opportunistica bloccaggio non è abilitato per il mio servizio .

Come posso impedire che un file venga scritto bloccandolo da un servizio senza ricorrere a hack del Registro di sistema?

Codice di blocco:

FileStream lockStream = new FileStream(path, FileMode.Open, FileAccess.Read);

codice per sbloccare:

lockStream.Close();
lockStream.Dispose();
È stato utile?

Soluzione

  using (fs = new FileStream("somefile.txt", FileMode.Open, FileAccess.Read, FileShare.None))
  { }

Hai usato la modalità FileShare quando si apre il file per la lettura o la scrittura?

Altri suggerimenti

Usa un globale Mutex essere molto attenti a rilasciarlo (Infine, ecc.)

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top