Ho il seguente blocco di codice che mi sta facendo venire il mal di testa.FileStream che blocca un file per leggere e scrivere C#
Logicamente dovrebbe funzionare come sto usando il filestream che fornisce il blocco all'interno dell'istruzione using. Quando arriva alla linea che crea StreamWriter, non riesce a dire "il file non è scrivibile".
Ora il mio programma è un'applicazione multithread. Qualsiasi thread potrebbe provare a scrivere su questo file. Ho bisogno del programma per bloccare il file, leggere il contenuto, controllare il contenuto, quindi scrivere nuovamente eventuali modifiche. Durante questo processo, nessun altro thread dovrebbe essere in grado di accedere a quel file.
using (var fs = File.Open(fileLoc, FileMode.Open, FileAccess.ReadWrite, FileShare.None))
{
var sr = new StreamReader(fs);
var str = sr.ReadToEnd();
var strArray = str.Split(',');
if (strArray.Any(st => st == text))
{
return;
}
sr.Close();
var sw = new StreamWriter(fs);
sw.Write(str + text);
sw.Flush();
sw.Close();
}