在使用旧的INI文件多年后,我们最近开始使用XML文件.
我的同事发现了一些使用System.Xml.XmlDocument.Save的CodeProject示例代码.当两个程序试图同时写入同一个文件时,我们会遇到异常.
System.IO.IOException:进程无法访问文件'C:\ Test.xml',因为它正由另一个进程使用.
事后看来这很明显,但我们没有预料到它,因为通过Win32 API访问INI文件没有这个限制.我假设Win32调用完成了一些仲裁,它们的工作级别高于XmlDocument.Save方法.
我希望.Net库中某处有更高级别的XML例程,它们与Win32函数类似,但不知道从哪里开始查找.
或者我们可以设置文件访问权限以允许多个程序写入同一个文件?
时间很短(就像几乎所有软件项目一样),如果我们无法快速找到解决方案,我们就必须抓住我们的鼻子并回到INI文件中.
这不会起作用.即使这两个进程可以写入同一个文件,它也只会损坏您的文件.如果你真的需要同时编写多个程序,我会使用数据库代替.
或者您可以将单个XML文件拆分为单独的文件吗?让每个进程写入自己的文件,然后在"Read"方法中将所有文件组合在一起.
归档时间: |
|
查看次数: |
2457 次 |
最近记录: |