以只读访问模式加载XML文档

时间:2015-05-11 06:42:56

标签: c# xml file-access

如何以只读模式加载XML文档?

我有一个XML文件在另一个进程中打开,我想以只读方式将它加载到我的C#应用​​程序中。

XmlDocument.Load("file.xml")显然会抛出此错误:

  

进程无法访问文件,因为另一个文件正在使用它   过程

所以我也试过了流阅读器:

FileStream fs = new FileStream("file.xml", FileMode.Open, FileAccess.Read);
xmldoc.Load(fs);

但它也会抛出相同的错误。 那么如何以只读模式访问我的XML文档呢?

更新

我也试过XPathDocumentFileStream("file.xml", FileMode.Open, FileAccess.Read,FileShare.Read)。但他们都没有解决问题。

2 个答案:

答案 0 :(得分:1)

鉴于您已经说过FileShare.Read不起作用,看起来其他进程的文件已打开以供写入。

您可以尝试使用FileAccess.ReadFileShare.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>