[C#] Lettura File aperto...

giovedì 27 gennaio 2011 - 11.33

gerald81 Profilo | Newbie

Ciao Ragazzi, ho il seguente problema in cui stò sbattendoci la testa da un pò di ore...

In sostanza ho un file (di testo) aperto da ULTRAEDIT in modalità senza file di backup, lo stesso file se viene aperto e letto da un programmino in VB6.0, utilizzando la classica OPEN, non dà alcun problema, invece in C# utilizzando la classe FileStream mi dà il seguente errore:

"Il processo non può accedere al file '...............' perchè è in uso da un'altro processo.

Come mai? Esiste il modo di aprire il file anche in C#?

Ringrazio tutti

Roberto

alx_81 Profilo | Guru

>Ciao Ragazzi, ho il seguente problema in cui stò sbattendoci
>la testa da un pò di ore...
Ciao

>mi dà il seguente errore:
>"Il processo non può accedere al file '...............' perchè
>è in uso da un'altro processo.
>Come mai? Esiste il modo di aprire il file anche in C#?
posta il codice dell'istanziazione del FileStream. Così vediamo che costruttore utilizzi.

>Ringrazio tutti
di nulla!
--
Alessandro Alpi | SQL Server MVP
MCP|MCITP|MCTS|MCT

http://www.alessandroalpi.net
http://blogs.dotnethell.it/suxstellino
http://mvp.support.microsoft.com/profile/Alessandro.Alpi

gerald81 Profilo | Newbie

Grazie per l'attenzione!

Ecco la riga di codice che solleva la IOException:

FileStream fs = new FileStream(sFileIdx, FileMode.Open, FileAccess.Read, FileShare.Read);

Ovviamente, se il file è aperto da ULTRAEDIT con l'opzione del file di backup, questo errore non viene sollevato, mentre come già accennato, la OPEN di VB 6.0 non dà questo errore.

Roberto 'Gerald81'

alx_81 Profilo | Guru

>FileStream fs = new FileStream(sFileIdx, FileMode.Open, FileAccess.Read, FileShare.Read);

>Ovviamente, se il file è aperto da ULTRAEDIT con l'opzione del
>file di backup, questo errore non viene sollevato, mentre come
>già accennato, la OPEN di VB 6.0 non dà questo errore.
Questo perchè UE effettua accessi continui al file per backuppare tutto..
Hai provato a cambiare il FileShare a ReadWrite?
--
Alessandro Alpi | SQL Server MVP
MCP|MCITP|MCTS|MCT

http://www.alessandroalpi.net
http://blogs.dotnethell.it/suxstellino
http://mvp.support.microsoft.com/profile/Alessandro.Alpi

gerald81 Profilo | Newbie

Funziona..... ottimo!

FileStream fs = new FileStream(sFileIdx, FileMode.Open, FileAccess.Read, FileShare.ReadWrite);

Mi chiedo perchè... siccome è UE che apre il file (quindi LUI deve aprirlo in ReadWrite)....

Grazie1000

alx_81 Profilo | Guru

>Funziona..... ottimo!
bene

>FileStream fs = new FileStream(sFileIdx, FileMode.Open, FileAccess.Read, FileShare.ReadWrite);
>Mi chiedo perchè... siccome è UE che apre il file (quindi LUI deve aprirlo in ReadWrite)....
non è questione di chi arriva primo
Chi usa il file, lo condivide per eventuali altri access in scrittura e lettura
--
Alessandro Alpi | SQL Server MVP
MCP|MCITP|MCTS|MCT

http://www.alessandroalpi.net
http://blogs.dotnethell.it/suxstellino
http://mvp.support.microsoft.com/profile/Alessandro.Alpi
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2017
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5