I'm writing a program to automatically setup some long files for use with streamwriting for another app. Basically all it does is add "sw.WriteLine("" to the beginning of every line and "")" to the end of every line.
You gather a list of files which is entered into a listbox, the problem I'm having is I don't quite know how to have the streamreader read multiple files. I tried to only way I could think of an got the following error:
Object reference not set to an instance of an object.
It works but I don't want to keep getting that error. Here's the code:
Dim FolderBrowserDialog1 As New FolderBrowserDialog
With FolderBrowserDialog1
.RootFolder = Environment.SpecialFolder.Desktop
.SelectedPath = "C:\"
If .ShowDialog = DialogResult.OK Then
For Each File As String In ListBox1.Items
Try
Using sr As StreamReader = New StreamReader(File)
Dim filePath As String = File
Dim slashPosition As Integer = filePath.LastIndexOf("\")
Dim filenameOnly As String = filePath.Substring(slashPosition + 1)
Using sw As StreamWriter = New StreamWriter(.SelectedPath & "\" & filenameOnly)
Dim line As String
Do
line = sr.ReadLine()
line = line.Replace("""", """""")
line = line.Insert(0, "sw.WriteLine(""")
line = line.Insert(line.Length, """)")
sw.WriteLine(line)
Loop Until line Is Nothing
sr.Close()
sw.Close()
End Using
For Each check As String In ListBox1.Items
If My.Computer.FileSystem.FileExists(.SelectedPath & "\" & filenameOnly) = True Then
MsgBox(filenameOnly & " was successfuly written", MsgBoxStyle.Information, "Save")
Else
MsgBox("An error occurred saving: " & filenameOnly & ".", MsgBoxStyle.Information, "Save")
End If
Next
End Using
Catch ex As Exception
MsgBox(ex.Message)
End Try
Next
End If
End With