StreamWriter перезаписывает каждую строку, мне нужно, чтобы они были перечислены

#vb.net #visual-studio-2010

#vb.net #visual-studio-2010

Вопрос:

У меня есть следующее, которое выполняет поиск в домене и выводит список каждого пользователя. Я записываю их в текстовый файл. Проблема в том, что каждое найденное имя пользователя перезаписывает другое.

Мне нужно, чтобы они были перечислены одна под другой. Я не туда поместил инструкцию Using?

Еще раз спасибо, ребята.

 Dim de As New DirectoryEntry()
    'Name place to write file to
    Dim strFile As String = "C:MyFile.txt"
    Dim fileExists As Boolean = File.Exists(strFile)
     'get list of all users on domain and write to file
    de.Path = "WinNT://domain.blah.com"
    For Each d As DirectoryEntry In de.Children()
        Using sw As New StreamWriter(File.Open(strFile, FileMode.OpenOrCreate))
            sw.WriteLine(d.Name)
        End Using
    Next
  

Комментарии:

1. Да, вы неуместно использовали инструкцию Using, поскольку файл должен быть открыт один раз для всех de. Дочерние элементы.

Ответ №1:

Вы открываете новую StreamWriter для каждой строки в вашем списке. Попробуйте поменять местами создание streamwriter и цикл:

 Using sw As New StreamWriter(File.Open(strFile, FileMode.OpenOrCreate))
    For Each d As DirectoryEntry In de.Children()
        sw.WriteLine(d.Name)
    Next
End Using