错误“目录不是空的。”当目录是empy时

错误“目录不是空的。”当目录是empy时,第1张

概述错误目录不是空的。”当目录是empy时

我得到一个非常间歇性的“目录不空”错误试图从C#代码中删除目录,但是当我看,目录似乎是空的。

实际情况是这样的:进程A使用同步.Net远程调用调用进程B,进程B从目录中删除文件,然后返回到进程A删除目录本身。 该磁盘是本地连接的NTFS磁盘(可能是SATA)。

我想知道是否有一个可能的竞争条件与NTFS,当你有两个进程合作的方式,进程B的删除调用还没有完全刷新到文件系统?

当然,更明显的答案是,目录真的不是空的时候,在我看之前,其他的东西都清空了,但是我不知道在当前的应用程序中会发生这种情况,因为没有其他的进程会删除文件。

DateTime.Now vs系统时间

如果启用了windows Update,请从.NET进行检查

你如何处理开发人员访问windows服务器?

TimeZoneInfo和CultureInfo的System.DateTime和Caching

使用用户没有安装的字体

如何在C#和windows 7中设置音量?

VS2010嵌套msi安装程序

windows / .Net中的蓝牙API?

WPF richtextBox的冲突语言设置

用C#直接从内存中处理内存映射文件

当然,删除目录在多任务 *** 作系统上是一个危险的冒险。 您总是有另一个进程打开文件的风险。 在场景中未能删除目录有两个主要原因:

特别是麻烦 – 有些是以不妨碍您删除文件的方式打开文件的进程类型,但仍会使删除目录失败并出现此错误。 搜索索引器和反恶意软件适合这个类别。 他们将使用.NET程序中的删除共享fileShare.Delete打开文件。 删除文件正常工作。 但是,文件不会消失,直到他们关闭文件句柄。 所以你不能删除目录,直到他们这样做。

非常难以诊断的是将目录选择为其当前工作目录的过程。 Environment.CurrentDirectory在.NET程序中。 资源管理器往往会触发这个,只要看看目录就足以防止它被删除。

这些事故完全发生在您的控制之外。 你将需要处理它们,捕捉异常是必需的。 稍后,您可以稍后重试,但是您不得不等待多长时间。 重命名目录并给它一个“垃圾”的名字是一个很好的策略。 请注意,windows中的回收站基本上遵循这种情况,不仅仅是回收利用:)

总结

以上是内存溢出为你收集整理的错误“目录不是空的。”当目录是empy时全部内容,希望文章能够帮你解决错误“目录不是空的。”当目录是empy时所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1279958.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-09
下一篇 2022-06-09

发表评论

登录后才能评论

评论列表(0条)

保存