c# Exception 进程无法访问文件

2023-11-22

我遇到异常:该进程无法访问该文件。

这是代码:

if (!Monitor.TryEnter(lockObject))
    return;
try
{
    watcher.EnableRaisingEvents = false;
    try
    {
        XmlDocument xdoc = new XmlDocument();
        xdoc.Load(FileName);
        xdoc = null;
    }
    catch (XmlException xe)
    {
        using (StreamWriter w = File.AppendText(FileName))
        {
            Console.WriteLine(xe);
            w.WriteLine("</test>");
            w.WriteLine("</testwrapper>");
        }
    }
    System.Threading.Thread.Sleep(2000);
    XPathDocument myXPathDoc = new XPathDocument(new StreamReader(FileName, System.Text.Encoding.GetEncoding("windows-1256")));
    XslCompiledTransform myXslTrans = new XslCompiledTransform();
    myXslTrans.Load("D:/GS/xsl/test.xsl");
    XmlTextWriter myWriter = new XmlTextWriter(destinationFile, null);
    myWriter.Formatting = Formatting.Indented;
    myWriter.Indentation = 4;
    myXslTrans.Transform(myXPathDoc, null, myWriter);
    myWriter.Close();
}
catch (Exception e)
{
    Console.WriteLine("The process failed: {0}", e.ToString());
}
finally
{
    Monitor.Exit(lockObject);
    watcher.EnableRaisingEvents = true;
    GC.Collect();
    GC.WaitForPendingFinalizers();
    GC.Collect();
}

在我添加这些行之前,代码运行得很好。这些主要用于测试 xml 文件是否没有结束标签(我通常会获取然后添加标签)。添加以下代码后,它开始给我这个异常。

try
{
    XmlDocument xdoc = new XmlDocument();
    xdoc.Load(FileName);
    xdoc = null;

}
catch (XmlException xe)
{
    using (StreamWriter w = File.AppendText(FileName))
    {
        Console.WriteLine(xe);
        w.WriteLine("</test>");
        w.WriteLine("</testwrapper>");
    }
}             

这里可能出了什么问题?

编辑:我收到错误

进程失败:System.IO.IOException:进程无法访问文件“z” :\TF_B1BBA.xml',因为它正在被另一个进程使用。 在 System.IO.__Error.WinIOError(Int32 errorCode, String MaybeFullPath) 在System.IO.FileStream.Init(字符串路径,FileMode模式,FileAccess访问,我 nt32 权限、布尔 useRights、FileShare 共享、Int32 bufferSize、FileOptions o pttions、SECURITY_ATTRIBUTES secAttrs、字符串 msgPath、布尔值 bFromProxy、布尔值 n 使用LongPath) 在 System.IO.FileStream..ctor(字符串路径、FileMode 模式、FileAccess 访问、 FileShare 共享,Int32 bufferSize) 在 System.Xml.XmlDownloadManager.GetStream(Uri uri,ICredentials 凭据, IWebProxy代理、RequestCachePolicy(cachePolicy) 在System.Xml.XmlUrlResolver.GetEntity(Uri绝对Uri,字符串角色,O类型 返回对象) 在 System.Xml.XmlTextReaderImpl.OpenUrlDelegate(对象 xmlResolver) 在 System.Threading.CompressedStack.runTryCode(对象 userData) 在 System.Runtime.CompilerServices.RuntimeHelpers.ExecuteCodeWithGuaranteedCl eanup(TryCode 代码、CleanupCode backoutCode、对象 userData) 在 System.Threading.CompressedStack.Run(CompressedStack 压缩堆栈,续 extCallback回调,对象状态) 在 System.Xml.XmlTextReaderImpl.OpenUrl() 在 System.Xml.XmlTextReaderImpl.Read() 。在 System.Xml.XmlLoader.Load(XmlDocument doc, XmlReader reader, Boolean prese ve空白) 在 System.Xml.XmlDocument.Load(XmlReader 阅读器) 在 System.Xml.XmlDocument.Load(字符串文件名) 在 C:\ 中的 GSelInterface.Program.convert(Object source, FileSystemEventArgs f) 文档和设置\管理员\桌面\ConsoleApplication1\ConsoleApplicat ion1\Program.cs:第 178 行


在您的 try 块中您已打开该文件。你需要关闭它。

XmlDocument xdoc = new XmlDocument();
xdoc.Load(FileName);

按照这个例子。

http://msdn.microsoft.com/en-us/library/zcsyk915.aspx

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

c# Exception 进程无法访问文件 的相关文章

随机推荐

  • 以 UTF8 保存时,如何防止带有设置内容的额外换行符,同时保留现有换行符?

    我有一个小的 powershell 脚本 它读取 UTF8 编码的文档 在其中进行一些替换并将其保存回来 如下所示 Get Content path Replace myregex replacement Set Content path2
  • 我如何知道 ScalaQuery 中是否存在数据库表

    我正在尝试 ScalaQuery 它真的很棒 我可以使用 Scala 类定义数据库表 并轻松查询它 但我想知道 在下面的代码中 如何检查表是否存在 这样我就不会调用 Table ddl create 两次并在运行该程序两次时出现异常 obj
  • 将日期拆分为年、月、日的不同列

    我的动物园对象看起来像 头 观测点 Index pp 1932 01 01 0 1932 01 02 0 2 1932 01 03 0 我想将索引分为 3 列 年 月和日在单独的列中 这样我就可以使用以下方法每天进行一些分析ddply 我不
  • iOS 6 safari,setInterval 不会被解雇

    看来如果我滚动window the window setInterval在滚动发生时或之后不会附加 触发 还有其他人看到同样的问题吗 我是说 可能是什么原因造成的 我可以做什么来解决这个问题 iOS 会停止几乎所有对用户触摸的响应 以保证其
  • Sublime Text 2 中的正则表达式搜索替换

    我正在寻找在 Sublime Text 2 中用正则表达式进行搜索替换 有关于此的文档比较贫血 具体来说 我想对组进行替换 例如转换此文本 Hello my name is bob 这个搜索词 找什么 my name is w 用 来代替
  • WebConfigurationManager 和 ConfigurationManager 有什么区别?

    两者有什么区别WebConfigurationManager和ConfigurationManager 我什么时候应该使用其中一种而不是另一种 UPDATED 我刚刚看了WebConfigurationManager 并且由于某种原因 您无
  • Docker 和保护密码

    我最近一直在尝试使用 Docker 来构建一些可供使用的服务 但一直困扰我的一件事就是将密码放入 Dockerfile 中 我是一名开发人员 因此将密码存储在源代码中感觉就像是一拳打在脸上 这应该成为一个问题吗 关于如何在 Dockerfi
  • 随机化列表

    在 C 中随机化通用列表顺序的最佳方法是什么 我在一个列表中有一组有限的 75 个数字 我想为其分配随机顺序 以便为彩票类型应用程序抽取它们 随机播放任意内容 I List以及基于的扩展方法费舍尔 耶茨洗牌 private static R
  • 如何从 WatchKit 应用程序打开 iPhone 上的父应用程序?

    我正在尝试打开 Apple Watch 应用程序的父应用程序 在 Xcode Beta 2 中我们可以使用以下代码 WKInterFaceController openParentApplication 然而 在 Xcode beta 3
  • 有没有比 table() 更有效的替代方法?

    我使用以下命令 table factor list levels 1 n 与 列表 示例 a c 1 3 4 4 3 and levels 1 5 同时考虑 2 和 5 对于非常大的数据集 我的代码似乎非常无效 有谁知道隐藏库或代码片段可以
  • 删除 Mongoose 中的多对多引用

    我的猫鼬模式之一是多对多关系 var UserSchema new Schema name String groups type mongoose Schema ObjectId ref Group var GroupSchema new
  • 如何创建 String 类副本?

    我需要创建一个具有与以下完全相同的方法的类java lang String 在 Java 中执行此操作的最佳方法是什么 我知道我不能按原样扩展 String 类final 我不是在寻找需要复制源代码的解决方案java lang String
  • .pro 文件 Qt Creator 的评论

    有没有办法评论我的某些部分 pro文件 Qt 项目 就我而言 我想评论不适用于我当前目标平台的特定部分 现在发现这个 http doc qt io qt 4 8 qmake project files html 您可以使用 symbol I
  • setw() 不影响读取整数字段

    我写了这样的代码 int d 0 cin gt gt setw 2 gt gt d 但似乎setw 对读取整数没有影响 如果是这样 我们如何实现以下行为 2d of scanf with istream setw is not design
  • 如何将 CLion 自定义 CMake 可执行文件设置为随 Homebrew 安装的版本?

    我试图让 CLion 使用与我从命令行使用的相同版本的 CMake 在 首选项 gt 构建 执行 部署 gt 工具链 中 我尝试将自定义 CMake 可执行路径设置为 usr local Cellar cmake 3 7 0 bin 但 C
  • 如何在 .NET 中处理 Negotiate?

    我正在尝试在小型 Web 服务器中实现 Negotiate 至少是 Kerberos 部分 我已经弄清楚如何让客户端向我发送 Kerberos 协商授权标头 我已经弄清楚如何解码该数据 ASN 1 我不知道如何把它变成WindowsIden
  • 我的 WPF 导航中是否存在内存泄漏?

    我正在检查 WPF 应用程序以查找内存泄漏 使用 ANTS Memory Profiler 5 1 并且我不断看到一些页面和控件在不应该占用的情况下占用了内存 因此 我转到对象保留图 看看是什么让它们保留在周围 我在每个页面上都看到了这一点
  • 有没有办法在 Visio for Java 中绘制 UML?

    我有 Visio2007 我非常喜欢它 然而 它似乎没有 Java 的 UML 模型 数据类型 有没有可以下载的 Java 模板 或者我应该完全忘记 Visio 并使用 Elipse 插件吗 Thanks 我也有同样的问题 但后来我搞乱了它
  • 在 AMD Radeon 上尝试使用 OpenCL+Theano 时出现“pygpu 已配置但无法导入”错误

    我已按照以下说明进行操作 https gist github com jarutis ff28bca8cfb9ce0c8b1a 但当我尝试时 THEANO FLAGS device opencl0 0 python test py在测试文件
  • c# Exception 进程无法访问文件

    我遇到异常 该进程无法访问该文件 这是代码 if Monitor TryEnter lockObject return try watcher EnableRaisingEvents false try XmlDocument xdoc n