|
|
|
![]() |
|
Strumenti |
![]() |
#1 |
Member
Iscritto dal: Oct 2008
Messaggi: 70
|
[C#] Accesso esclusivo a file
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! |
![]() |
![]() |
![]() |
#2 |
Messaggi: n/a
|
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 :-) |
![]() |
![]() |
#3 |
Senior Member
Iscritto dal: May 2004
Città: Londra (Torino)
Messaggi: 3692
|
in questo modo
Codice:
var file = File.Open("FileName", FileMode.Open, FileAccess.ReadWrite, FileShare.None); NEssun altro processo potra' accedere al file fino alla file.Close();
__________________
Se pensi che il tuo codice sia troppo complesso da capire senza commenti, e' segno che molto probabilmente il tuo codice e' semplicemente mal scritto. E se pensi di avere bisogno di un nuovo commento, significa che ti manca almeno un test. Ultima modifica di gugoXX : 08-03-2010 alle 21:38. |
![]() |
![]() |
![]() |
#4 |
Member
Iscritto dal: Oct 2008
Messaggi: 70
|
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! |
![]() |
![]() |
![]() |
Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 18:54.