File di testo condiviso

lunedì 23 marzo 2009 - 13.21

mikkosoft Profilo | Newbie

Ho un'applicazione che mi crea un file di testo. Io devo accedere a questo file, ma non so quando è "pronto".
Non è sufficiente che il file esista (io.file.exists), perchè se ci sta scrivendo dentro, il file esiste ma non è accessibile.
Qualcuno ha qualche idea?

Anonimo Profilo | Senior Member

Come spesso accade utilizzi un record in un database dove indichi per il file in questione quando la risorsa è rilasciata. Se mi vengono altri comandi ti scrivo, ma in linea generale si crea una tabella nel db o in un file così composta:

RISORSA STATO
--------------------------------------------------
C:\fileAperto.txt 0/1

Se lo stato per la risorsa è a 0 ci stai ancora lavorando, a 1 è libero.
ovvimente quando scrivi sul file ti devi preoccupare in apertura di impostare lo stato a 0 e in chiusura a 1, e cosa ancora più importante dopo aver cambiato lo stato del file chiudere lo stream.

mikkosoft Profilo | Newbie

Il problema è che non sono io a scrivere il file, ma un'applicazione esterna.
Io ho bisogno di sapere quando l'applicazione esterna (sulla quale non posso in nessun modo interagire) ha ultimato di scrivere il file.
Comunque grazie.
Altre idee?

Anonimo Profilo | Senior Member

Beh puoi usare l'API di windows per sapere se un processo è chiuso, ma devi sapere a priori qual'è il nome dell'applicazione che mette mano al file e se questa termina dopo aver modificato il file.

mikkosoft Profilo | Newbie

L'applicazione è un agente in background che scarica un file da un misuratore fiscale.
Non so se è fattibile con le API, sapresti indicarmi dove documentarmi?
Grazie

Anonimo Profilo | Senior Member

Puoi vederti la documentazione delle seguenti API che possono tornarti utili:

OpenProcess, WaitForSingleObject e CloseHandle

poi guardati il metodo run della classe e dell'interfaccia IWshShell_Class


Jeremy Profilo | Guru

Ciao Mirko.
Potresti semplicemente tentare l'accesso al file e,qualora fosse *impegnato* da un'altro processo, gestire l'eccezione in un blocco Try...Catch....EndTry.

Facci sapere...
Ciao

mikkosoft Profilo | Newbie

Infatti è quello che avevo pensato, speravo però che ci fosse qualcosa di più elegante.
Vi tengo aggiornati!
Grazie
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-2024
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5