2015-12-11 2 views
2

Я хочу получить имя подпапки, указанное в моем текстовом файле. Я не хочу видеть путь для SubFolder. У меня наконец появился способ показать только мою консоль VS. Но если я попытаюсь сохранить его в своем txt-файле, он продолжает писать только первую строку, даже если я использовал For. Пожалуйста помогите! Вот код, который выводит на консольVB Получение имени субфолдера и сохранение его в текстовом файле

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 

Это код, который я попытался записать его на текстовый файл. Он пишет только 1 строку

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

Ожидаемого Выход

SubFolder1 
SubFolder2 
SubFolder3 
SubFolder4 
SubFolder5 

Как это в текстовом файле

+1

Показать код, который записывает в файл, так что это код, который вы хотите получить исправлено нами –

+0

@wingedpanther Я добавил ожидаемый результат по вопросу –

+0

@TimSchmelter Я добавил код, который записывает в txt-файл –

ответ

1

Вы используете неправильный метод, WriteAllText всегда переписывает весь файл, вы хотите добавить новая линия. Вы можете использовать File.AppendAllText:

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

Другой вариант, использовать StreamWriter, он имеет constructor that takes a Boolean добавить текст:

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

Спасибо! У меня проблема хорошая! Я не знал, что существует больше методов. Я попытаюсь посмотреть глубже в msdn –

+0

@ 노재형: да, особенно посмотрите на пространство имен 'System.IO' и классы' File' или 'Directory', которые содержат много полезных методов. Конечно, вы также можете использовать 'StreamWriter' (у него есть [конструктор, который принимает' Boolean'] (https://msdn.microsoft.com/en-us/library/36b035cb (v = vs.110) .aspx), чтобы добавить текст). Но обычно методы 'File' более удобны. Вам не нужно использовать 'Use', чтобы обеспечить правильную настройку. Отредактировал мой ответ, чтобы включить его. –

Смежные вопросы