如何以只读模式加载XML文档?
我有一个XML文件在另一个进程中打开,我想以只读方式将它加载到我的C#应用程序中。
XmlDocument.Load("file.xml")
显然会抛出此错误:
进程无法访问文件,因为另一个文件正在使用它 过程
所以我也试过了流阅读器:
FileStream fs = new FileStream("file.xml", FileMode.Open, FileAccess.Read);
xmldoc.Load(fs);
但它也会抛出相同的错误。 那么如何以只读模式访问我的XML文档呢?
更新
我也试过XPathDocument
和FileStream("file.xml", FileMode.Open, FileAccess.Read,FileShare.Read)
。但他们都没有解决问题。
答案 0 :(得分:1)
鉴于您已经说过FileShare.Read
不起作用,看起来其他进程的文件已打开以供写入。
您可以尝试使用FileAccess.Read
和FileShare.ReadWrite
打开它,在这种情况下,如果其他进程确实写入文件,您将需要处理可能发生的任何错误。
如果这不起作用,则可能是其他进程已使用FileShare.None
打开,在这种情况下,您无法对其进行任何操作。要检查这一点,请尝试使用记事本打开文件。
但是,如果FileShare.ReadWrite在大多数情况下有效,它是否仍然可以抛出错误?
如果其他进程已使用FileShare.None
打开文件,则只会出现错误。您已经确认在Microsoft Word中打开时不是这种情况,所以您应该没问题。
答案 1 :(得分:0)
此类以只读模式显示读取xml文件。
<html>
<head>
</head>
<body>
<iframe src="https://www.google.pl/?gfe_rd=cr&ei=x5UEWO-yGaOh8welvY2IAQ" width="100%" height="700">
</iframe>
<img src="logo.jpg" align="bottom" align="right">
</body>
</html>