【问题标题】:error : this file use by another user错误:此文件被其他用户使用
【发布时间】:2011-07-22 16:13:36
【问题描述】:

XMl

<?xml version="1.0" encoding="utf-8"?>
<Questions>
   <Question>
   <Id>1</Id>
   <Text>aaaa</Text>
</Question>
   <Question>
    <Id>2</Id>
    <Text>bbb</Text>
   </Question>
</Questions>

代码

var doc = XDocument.Load(Server.MapPath(".") + "\\Questions.xml");
var elements = from element in doc.Descendants("Question")
               select new
               {
                   Id = element.Element("Id").Value,
                   Text = element.Element("Text").Value,
                   Reserver = element.Element("Reserver") != null
               };

当一个项目与我同时打开Mozilla和IE8这个错误我的xml文件正在被另一个用户使用,但当然有时会给出这个错误有时没有错误

编辑

如果两个用户同时请求显示一个使用 XML 的页面。在这种情况下,我希望同时打开一个 XMl,这会导致另一个用户使用此文件时出错

【问题讨论】:

  • 错误:此文件被其他用户使用
  • 我可以从问题的标题中看到 this。你能解释一下你想做什么吗?你在说什么project(来自你的问题)?

标签: c# linq-to-xml


【解决方案1】:

我假设您正在寻找的是一种查看文件是否已被其他用户使用并因此被锁定并且您收到错误的方法。 Heres a question that shows how to check if a file is open

【讨论】:

    【解决方案2】:

    如果您想在用户之间共享它,那么您可以在共享模式下加载它:

    using (FileStream fs = File.Open(Server.MapPath(".") + "\\Questions.xml", FileMode.Open, FileAccess.Read, FileShare.Read)) {
      var doc = XDocument.Load(fs);
      // ... rest of your code...
    }

    (注意:未经测试的代码。)

    使用 FileAccess 和 FileShare,您可以控制您希望共享访问发生的方式。例如,在这个例子中,文件只能为共享读取打开,不能写入。如果您想允许写入,您需要指定FileShare.ReadWrite。但是当你阅读它时,文件可能会发生变化。

    如果这是在 ASP.Net 下(我假设您有多个用户),您可能需要考虑在第一次读取时将文件缓存在内存中。

    【讨论】:

      猜你喜欢
      • 2014-11-08
      • 2022-01-18
      • 1970-01-01
      • 1970-01-01
      • 2023-03-15
      • 1970-01-01
      • 1970-01-01
      • 2022-01-01
      • 1970-01-01
      相关资源
      最近更新 更多