如何避免文件被vb.net中的另一个进程使用

时间:2011-05-27 10:49:41

标签: vb.net file-io

我正在尝试检查文件是否存在。如果没有创建并写入一些东西。该文件正在创建,但没有更新,并且收到错误消息表明它正被另一个进程使用

代码段:

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 个答案:

答案 0 :(得分:4)

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,因此它会一直保留文件。