2014-01-30 2 views
3

Я пытаюсь записать файл в StreamWriter.VB - Запись в файл с StreamWriter

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

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

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

+1

Какое исключение? – Magnus

+0

Ну, по сути, вам нужно разбить IOException, если файл все еще используется, и сообщить пользователю закрыть все программы, имеющие доступ к файлу, и повторите попытку. – MrPaulch

ответ

4
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 

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

Using writer As StreamWriter = New StreamWriter(file) 
     writer.Write("....") 
      //and so on 
End Using 
+0

Это все еще не работает для меня. – Bpk7

+0

@ user3246386 Я разместил код, который обрабатывает ошибку. Вероятно, вы открываете файл, но без закрытия вы пытаетесь открыть его снова. Таким образом, используйте, чтобы правильно обрабатывать близко за открытие. – qwr

+0

Спасибо, что это сработало. : D: D – Bpk7