Ho un programma che usa -tra l'altro- due files di testo, che vengono letti e scritti dopo che l'operatore ha effettuato alcune operazioni basilari (nuovo transazione, cancellazione operazione,ecc.).
Ricevo il seguente errore 'System.IO.IOException: 'Il processo non può accedere al file C:\AreaPersonale\VbNet2019\CC_4\bin\Debug\movimenti.txt' perché è in uso da un altro processo.'
Presumo che "l'altro processo" si riferisca e si attivi nella fase di lettura del file e che l'eccezione System.IO.IOException è generata nella fase di scrittura del file.
Come posso scoprire a quale processo si riferisce l'eccezione e comunque come posso risolvere il problema?
Grazie per qualsiasi soluzione/suggerimento.
Private Sub ScriviMB_Click(sender As Object, e As EventArgs) Handles ScriviMB.Click
Dim nomeFile As String = Application.StartupPath & "\movimenti.txt"
Dim stringa As String
For x As Integer = 0 To ListBox2.Items.Count - 1
stringa += ListBox2.Items.Item(x) & Environment.NewLine
Next
For x As Integer = 0 To scartati.Length - 1
Try
stringa += scartati(x) & Environment.NewLine
ListBox2.Items.Add(stringa)
Catch ex As Exception
Exit For
End Try
Next
My.Computer.FileSystem.WriteAllText(nomeFile, stringa, False)
contatore -= 1
End Sub
Private Sub LeggiMB_Click(sender As Object, e As EventArgs) Handles LeggiMB.Click
contatore += 1
Dim msaldo As Double
Dim j As Integer = 0 : Dim y As Integer = 0
ListBox2.SelectionMode = SelectionMode.MultiSimple
Dim nomeFile As String = Application.StartupPath & "\movimenti.txt"
If Not My.Computer.FileSystem.FileExists(nomeFile) Then
letturaFile = False
Exit Sub
Else
letturaFile = True
End If
Dim riga = My.Computer.FileSystem.OpenTextFileReader(nomeFile)
Dim stringa As String = ""
While Not riga.EndOfStream
stringa = riga.ReadLine()
If stringa.Contains(correntista.Text) Then 'se stringa contiene il correnista selezionato,
ListBox2.Items.Add(stringa) 'lo aggiungiamo alla listbox
ListBox2.SetSelected(y, True) 'selezioniamo l'item...
y += 1
msaldo += Val(Split(stringa, " | ")(3)) 'calcoliamo la somma degli importi versati/prelevati
saldo.Text = Format(msaldo, "n")
Else
scartati(j) = stringa
j += 1
End If
End While
ReDim Preserve scartati(j - 1)
End Sub