VB 2010 Scrivere su txt da 2 postazioni

di Anonimizzato9444 il
3 risposte
Salve ragazzi,
sono di nuovo qui a chiedervi consiglio per qualcosa che molti di voi riterranno sicuramente banale.
La mia domanda è semplice: dovrei sviluppare un applicativo che deve girare su 2 o più postazioni e, di tanto in tanto, dovrà scrivere dati in un file txt.
Nel caso in cui dovesse capitare che 2 postazioni scrivano dati nel file contemporaneamente, a cosa andrei incontro? Ci sarebbero problemi? E nel caso, come sono risolvibili?

Grazie

3 Risposte

  • Andresti incontro a dei problemi, quali dipende da quello che fai esattamente, supponiamo che tu legga il file lo alteri e poi lo riscrivi tutto, se il secondo processo fa la stessa cosa quasi simultaneamente cancellerebbe le modifiche del primo, oppure più semplicemente un processo non riuscirebbe ad aprire il file.

    Potresti aprire il file in modalità esclusiva, a questo punto il secondo processo non riesce ad aprirlo, capisce che è occupato e ritenta dopo.
  • Ciao,
    se utilizzi la classe StreamWriter per "appendere" del testo sul file, quando istanzi l'oggetto e passi il file come argomento, il file viene aperto in modalità esclusiva, pertanto se l'altra applicazione che usa lo stesso oggetto tenta di accedere al file nello stesso momento ritornerà un'eccezione di tipo IOException.

    es.
    
    Public Sub scriviSufile()
    
            Try
                Dim scrittore As New StreamWriter("F:\FILE PROVE\PROVA.TXT")
                Dim testo As String = "ciao tutto bene?"
                scrittore.WriteLine(testo)
                scrittore.Flush()
                scrittore.Close()
    
            Catch ex As System.IO.IOException
                MessageBox.Show("il file è già aperto, riprova più tardi")
            End Try
    
        End Sub
    
Devi accedere o registrarti per scrivere nel forum
3 risposte