View Full Version : [C#] Accesso esclusivo a file
andreapav
08-03-2010, 14:35
Ciao a tutti!
sto facendo un programma che comunica con un altro per mezzo di un file.
praticamente dal mio lato devo leggere il file e cancellarlo mentre dall'altro lato vengono appese stringhe di testo.
Chiaramente capita che entrambe i programmi accedano contemporaneamente al file, come faccio per assicurare dal mio lato l'accesso esclusivo?? non posso toccare l'altro programma!!
Grazie dell'aiuto! ciao!
fdfdfdddd
08-03-2010, 19:43
Spero di non dire castronerie: mi pare che utilizzando esclusivamente il .Net Framework non ci sia modo di capire se un file è "lockato" o meno ma bisogna ricorrere alle API di Windows (oppure gestendo l'eccezione per l'accesso in crittura non riuscito...).
In caso contrario, sarò felicissimo d'imparare qualcosa di nuovo, visto che è un problema che mi è capitato qualche tempo fa :-)
in questo modo
var file = File.Open("FileName", FileMode.Open, FileAccess.ReadWrite, FileShare.None);
Ottieni l'accesso esclusivo al file, in lettura e scrittura. L'accesso esclusivo e' l'ultimo parametro. FileShare.None significa che l'accesso al file non sara' condiviso con nessun altro.
NEssun altro processo potra' accedere al file fino alla file.Close();
andreapav
12-03-2010, 13:24
Grazie!
scusate, non ho avuto tempo di ringraziare!! :S
Ho provato con FileShare.None ma l'altro programma entrava comunque o comunque ci provava, insomma mi veniva fuori l'errore.
Per chi leggesse questo post in futuro: ATTENZIONE CHE NON HO CONTROLLATO IL DISCORSO DEL FILESHARE (infatti ho scoperto dell'esistenza di file semaforo generati e letti dall'altro programma e ho lasciato perdere questo discorso!)
Ciao!
vBulletin® v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.