asomethings
asomethings

Reputation: 55

VB Getting The SubFolder name and saving it to a Text file

I want to get The Subfolder Name Listed in my Textfile. I don't want to see the path for the SubFolder. I finally got a way to show only to my VS Console. But If i try to save it to my txt file it keeps on writing only the first line even though I used For. Please Help Me! Here's the code that writes to the console

Dim di As New IO.DirectoryInfo(startPath)
        Dim Drs() As IO.DirectoryInfo = di.GetDirectories()
        For Each dr As IO.DirectoryInfo In Drs
            Console.WriteLine(dr.Name)
        Next

This is the code that I tried to Write It on a txt file. It only writes 1 Line

For Each Dir As String In Directory.GetDirectories(startPath)
            My.Computer.FileSystem.WriteAllText("C:\Test.txt", Dir, False)
        Next

The Expected Output is

SubFolder1
SubFolder2
SubFolder3
SubFolder4
SubFolder5

Like this in txt file

Upvotes: 2

Views: 130

Answers (1)

Tim Schmelter
Tim Schmelter

Reputation: 460288

You are using the wrong method, WriteAllText always overwrites the complete file, you want to append a new line. You could use File.AppendAllText:

For Each Dir As String In Directory.GetDirectories(startPath)
    System.IO.File.AppendAllText("C:\Test.txt", Dir)
Next

Another option, use a StreamWriter, it has a constructor that takes a Boolean to append text:

Using writer As New System.IO.StreamWriter(startPath, True)
    For Each Dir As String In Directory.GetDirectories(startPath)
        writer.WriteLine(Dir)
    Next
End Using

Upvotes: 1

Related Questions