Combine multiple text files

kasteel

Well-known member
Joined
May 29, 2009
Messages
50
Programming Experience
10+
Hi

How can I combine multiple *.txt files in a specific directory into one txt file in another directory using VB.NET? (And to delete blank lines at the end of the new file)

Would appreciate some help.

I know how to do it in vbscript:

VB.NET:
Const ForReading = 1
Const ForWriting = 2

Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objOutputFile = objFSO.CreateTextFile("C:\logs\import\output.txt")

strComputer = "."
Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2")

Set FileList = objWMIService.ExecQuery _
    ("ASSOCIATORS OF {Win32_Directory.Name='C:\scripts1'} Where " _
        & "ResultClass = CIM_DataFile")

For Each objFile In FileList
    Set objTextFile = objFSO.OpenTextFile(objFile.Name, ForReading) 
    strText = objTextFile.ReadAll
    objTextFile.Close
    objOutputFile.WriteLine strText
    
Next

objOutputFile.Close

Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objFile = objFSO.OpenTextFile("C:\logs\import\output.txt", ForReading)

Do Until objFile.AtEndOfStream
    strLine = objFile.Readline
    strLine = Trim(strLine)
    If Len(strLine) > 0 Then
        strNewContents = strNewContents & strLine & vbCrLf
    End If
Loop

objFile.Close

Set objFile = objFSO.OpenTextFile("C:\logs\import\output.txt", ForWriting)
objFile.Write strNewContents
objFile.Close

MsgBox "Done!"
 
Last edited:
Do some research on the System.IO namespace
It has lots of functions for working with the windows FileSystem. You could also research My.Computer.FileSystem
But trust me, it is much simpler than that..
 
something like this ?

VB.NET:
 Sub Main()
        Dim StartDirectory As String = "C:\Test\"
        Dim OutPutFile As String = "c:\outputfile.txt"

        Dim SW As New IO.StreamWriter(OutPutFile)

        Dim Files As String() = IO.Directory.GetFiles(StartDirectory, "*.txt")
        Dim File As String

        For Each File In Files

            Dim SR As New IO.StreamReader(File)

            SW.WriteLine("{File: " & File)
            Do Until SR.EndOfStream
                Dim TempString As String = SR.ReadLine
                SW.WriteLine(TempString)
            Loop
            SW.WriteLine()
            SW.WriteLine("{End Of File Moving To Next File}")
            SW.WriteLine()

        Next

        SW.WriteLine("{End Of All Files}")

        SW.Flush()
        SW.Close()

    End Sub


If this helps please approve this post
 
Last edited:
Back
Top