Как избежать использования файла другим процессом в vb.net - PullRequest
2 голосов
/ 27 мая 2011

Я пытаюсь проверить, существует файл или нет. если не создавать и записать что-то в него. Файл создается, но не обновляется, и в сообщении об ошибке говорится, что он используется другим процессом

Фрагмент кода:

Public shared sub MyXml()
  If Not System.IO.File.Exists("configfile.xml") Then
    Dim writer As New System.Xml.XmlTextWriter(fullPath.ToString + "\configfile.xml", Nothing)
  End If

  Dim xmlElement As New XElement("FilePath", ConfigWindow.Datapath.Text)
  System.IO.File.WriteAllText(fullPath + "\configfile.xml", xmlElement.ToString())
end sub()

Любые предложения, пожалуйста ...

1 Ответ

4 голосов
/ 27 мая 2011

WriteAllText создаст файл, поэтому вы можете просто удалить оператор If:

Public Shared Sub MyXml()
  Dim xmlElement As New XElement("FilePath", ConfigWindow.Datapath.Text)
  System.IO.File.WriteAllText(fullPath + "\configfile.xml", xmlElement.ToString())
End Sub

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...