2013-11-02 4 views
0

У меня есть следующий код:Streamwriter не добавляет текст в файл?

If line = Nothing Then 
    MsgBox("Login failed.") 
     Using sw As New StreamWriter(File.Open(Index.strLogPath, FileMode.OpenOrCreate)) ' open or create a new file at our path 
     sw.BaseStream.Seek(0, SeekOrigin.End) ' append new users to the end 
     sw.AutoFlush = True 
     sw.WriteLine("line is nothing") 
     sw.Flush() 
     sw.Close() 
     End Using 

End If 

Моя линия = ничего условие выполнено, то MsgBox выскакивает давая мне знать, но файл не создается. Если файл есть, к нему ничего не добавляется.

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

+0

Есть ли причина, по которой вы не используете [File.AppendAllText Method] (http://msdn.microsoft.com/en-us/library/ms143356%28v=vs.110%29.aspx) ? И какой тип 'line'? Вы должны использовать 'Is', а не' = 'для сравнения с' Nothing' в VB.NET. Вы путаете пустую строку с Ничем? Доступен [String.IsNullOrEmpty] (http://msdn.microsoft.com/en-us/library/system.string.isnullorempty.aspx). –

+0

Если вы используете 'MsgBox (Index.strLogPath)' в том же коде, показывает ли оно желаемое имя файла? –

+0

@AndrewMorton Да, это показывает мне точный путь к txt-файлу. – SCGB

ответ

1

Знаете ли вы, что класс File уже имеет полезный метод, чтобы сделать именно это?

File.AppendAllText(Index.strLogPath, "line is nothing") 

Должно быть так просто. :)

EDIT

Если вы настаиваете на управлении файла потока самостоятельно, попробуйте следующее:

Using sw As New StreamWriter(File.Open(Index.strLogPath, FileMode.Append)) ' open or create a new file at our path 
     sw.WriteLine("line is nothing") 
    End Using 

Точки интереса:

  • Использование FileMode.Append вместо OpenOrCreate
  • Не нужно скрывать или закрывать. Это делается автоматически, когда вы покидаете блок «using».
Смежные вопросы