У меня есть следующий код:Проверяется текстовый файл пуст
Private Sub btnCreateAccount_Click(sender As Object, e As EventArgs) Handles btnCreateAccount.Click
Dim fi As New System.IO.FileInfo(strUsersPath)
Using r As StreamReader = New StreamReader(strUsersPath)
Dim line As String
line = r.ReadLine ' nothing happens after this point
Do While (Not line Is Nothing)
If String.IsNullOrWhiteSpace(line) Then
MsgBox("File is empty, creating master account")
Exit Do
Else
MsgBox("Creating normal account")
End If
line = r.ReadLine
Loop
End Using
End Sub
У меня возникли некоторые проблемы. Basicaly У меня есть streamreader, открывающий файл .txt, где каталог хранится в 'strUsersPath'. Я пытаюсь получить код так, чтобы, если файл пуст, он делает одно, а если файл не пуст (есть пользователь), то он делает другое.
Если у меня есть пользователь в моем txt-файле, код дает msgbox («создание нормальной учетной записи»), как и ожидалось, однако, когда у меня нет пользователя, он не дает мне другого msgbox, а я почему-то не получается. Я подозреваю, что это потому, что IsNullOrWhiteSpace не подходит для этого. Любая помощь будет принята с благодарностью
EDIT Это код, который я также пробовал, тот же результат, нажав на кнопку ничего не делает, если уже есть пользователь.
Private Sub btnCreateAccount_Click(sender As Object, e As EventArgs) Handles btnCreateAccount.Click
Dim fi As New System.IO.FileInfo(strUsersPath)
Using r As StreamReader = New StreamReader(Index.strUsersPath)
Dim line As String
line = r.ReadLine ' nothing happens after this point
Do While (Not line Is Nothing)
fi.Refresh()
If Not fi.Length.ToString() = 0 Then
MsgBox("File is empty, creating master account") ' does not work
Exit Do
Else
MsgBox("Creating normal account") ' works as expected
End If
line = r.ReadLine
Loop
End Using
End Sub
Проверьте, если ваше приложение может открыть файл – Epsil0neR
@ Epsil0neR Как? – SCGB
Вы можете проверить, не пуст ли файл с '' '' '' '' '' 'FileInfo'', не открывая его. – BartoszKP