在我的应用程序中,我在管理员端为每15秒创建一个XML文件。 为了创建XML,我已经将字符串构建器用于XML。
File.WriteAllText("D:\\FE_Display.xml", StringBuilder.ToString())
我过去每隔15秒在前端网格中显示的同一个文件。此文件最少10美元在前端同时使用。下面的代码用于前端。
Dim ds As New DataSet()
ds.ReadXml("d://FE_Display.xml")
Try
If ds.Tables(0).Rows.Count > 0 Then
Grid1.DataSource = ds.Tables(0)
Grid1.DataBind()
End If
Catch ex As Exception
End Try
如果两个事件(读取和写入)同时发生,我将低于错误
该进程无法访问文件'FE_Display.xml',因为它正被另一个进程
使用
答案 0 :(得分:2)
除非您提供FileShare,否则文件通常是互斥的。你可以读取一个文件保存在内存中,然后写下来。
Reading
和Writing
在同一时间没有意义(至少对于xml而言),因为xml必须格式良好。当你同时写作和阅读时,你会得到意想不到的结果。
最好的方法是
答案 1 :(得分:0)
打开要写入的文件时使用FileShare.ReadWrite
选项。
允许随后打开文件进行读写。如果未指定此标志,则在文件关闭之前,任何打开文件以进行读取或写入(通过此进程或其他进程)的请求都将失败。但是,即使指定了此标志,仍可能需要其他权限才能访问该文件。
从这里开始:
http://msdn.microsoft.com/en-us/library/system.io.fileshare.aspx
打开时的示例:
var filestream = File.Open(fileName,
FileMode.Open,
FileAccess.Read,
FileShare.ReadWrite);
然后您的文件的后续读取可以无误地打开。