VB — запись в файл с помощью StreamWriter

Я пытаюсь записать в файл с помощью StreamWriter.

Dim write as IO.StreamWriter
write = new io.streamwriter(file)
write.write(txtEncryption.text)
write.close

Я остановил код в режиме отладки и увидел, что он падает и переходит прямо к исключению, когда достигает строки 2.

Это потому, что я только что сделал файл, и он все еще используется? Как я могу этого избежать?


person Bpk7    schedule 30.01.2014    source источник
comment
Что является исключением?   -  person Magnus    schedule 30.01.2014
comment
Ну, по сути, вы должны заблокировать IOException, если файл все еще используется, и попросить пользователя закрыть все программы, имеющие доступ к файлу, и повторить попытку.   -  person MrPaulch    schedule 30.01.2014


Ответы (1)


Dim write As  IO.StreamWriter 
Try 
  write=New IO.StreamWriter(file)  
  write.write(txtEncryption.text)

Catch ex As Exception
  'Prompt error
  Console.WriteLine("Error {0}",ex.Message)

Finally 
    If write IsNot Nothing Then
        write.Close() 
    End If
End Try 

Предположение (если файл больше нигде не открывался): Вы открываете уже открытый. Убедитесь, что все ваши открытые потоки закрылись правильно. Вы также можете использовать этот синтаксис

Using writer As StreamWriter = New StreamWriter(file)
        writer.Write("....")
           //and so on
End Using
person qwr    schedule 30.01.2014
comment
@user3246386 user3246386 Я разместил код, который будет обрабатывать ошибки. Вероятно, вы открываете файл, но, не закрывая, пытаетесь открыть его снова. Поэтому используйте using для правильной обработки закрытия на открытие - person qwr; 30.01.2014