Lo que dices sobre las líneas de código:
'Results = SR.ReadToEnd
'SW.Close()
'SR.Close()
'Invoke(Finished)
Una parte de eso ya te lo había dicho. No sé si recuerdes que te dije que eliminaras las líneas que cierran los streams. Y lo comentar la línea del invoke() y que funcione, pues tiene sentido. Lo que ocurre es que estás usando mal el delegado. Por alguna raón (no estoy seguro cual) sólo te funcionará el delegado la primera vez que lo utilices. Prueba dejando el bucle de la siguiente manera:
For Each file As String In My.
Computer.
FileSystem.
GetFiles(midirectorio, FileIO.
SearchOption.
SearchAllSubDirectories,
"*.T01") nombre
= My.
Computer.
FileSystem.
GetName(file) cmdir = "cd " & midirectorio
comando = "runpkr00.exe -d -s " & nombre
SW.WriteLine(cmdir)
SW.WriteLine(comando)
Results = SR.ReadToEnd
Finished = New delUpdate(AddressOf UpdateText)
Invoke(Finished)
Next
Es decir, asignando la dirección al delegado cada vez que lo quieras utilizar. En caso de que no te funcione puedes hacerlo dejando el código anterior como te lo dejé,
pero eliminando la línea donde asignas la dirección del delegado. Y modificando la función UpdateText() de la siguiente manera:
Private Sub UpdateText()
If Me.InvokeRequired = False Then
Dim midirectorio As String = TextBox1.Text
Dim strStreamW As Stream = Nothing
Dim strStreamWriter As StreamWriter = Nothing
Dim fecha As String = DateTime.Now.ToString("dd MMM HHmmss") & ".txt"
Windows.Forms.Cursor.Current = Cursors.WaitCursor
Dim rutarchivo As String = String.Concat(midirectorio, "log-", fecha)
strStreamW
= File.
Create(rutarchivo
) strStreamWriter = New StreamWriter(strStreamW, System.Text.Encoding.Default)
strStreamWriter.WriteLine(Results)
strStreamWriter.Close()
Else
Dim D As delUpdate = new delUpdate(AddressOf UpdateText)
Me.Invoke(D)
End If
End Sub
Si cometí un error al escribir los nombres de las propiedades, busca las correctas (es que no estoy escribiendo desde Visual Studio).
Y sobre lo que dices del FileCopy(), la verdad no tengo idea de a qué se deba. ¿Qué error te da el depurador cuando la aplicación crashea?