有没有办法立即检查目录是否正在使用?

2024-03-22

我想使用 Directory.Move 移动目录及其所有子目录。

不过,在此之前,我想检查该目录及其子目录中的任何文件和子文件是否正在被其他进程使用。

然后,在移动之前,我想将目录锁定到其他进程,这样我就可以确保 Directory.Move 不会抛出任何异常。

实现这一目标的最佳方法是什么?

我想避免逐个文件检查单个文件的使用情况,因为软件检查时未使用该文件并不意味着移动过程开始时不会使用该文件。


没有办法锁定文件夹(+子文件夹),所以你总是会得到一个竞争条件 http://en.wikipedia.org/wiki/Race_condition并且不能保证不会有例外。

在检查和移动之间总是有可能发生一些变化,因此事情可能会出错。

只需尝试移动该文件夹,如果不成功,请稍后重试。

也可以看看:Delphi:检查文件是否正在使用 https://stackoverflow.com/questions/502996/delphi-check-whether-file-is-in-use(这是一个类似的问题,忽略Delphi部分)

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

有没有办法立即检查目录是否正在使用? 的相关文章

  • 使用 OpenGL 着色器进行数学计算 (C++)

    我有一个矩阵 例如 100x100 尺寸 我需要对每个元素进行计算 matrix i j tt 8 5例如 我有一个巨大的矩阵 我想使用 OpenGL 着色器来实现该算法 我想使用着色器 例如 uniform float val unifo
  • 用户控件内所有控件均为空

    我有一个 UserControl 它使用 UserControl 以及其他控件 In the ascx文件我有以下代码
  • 找到的程序集的清单定义与程序集引用不匹配

    我试图在 C Windows 窗体应用程序 Visual Studio 2005 中运行一些单元测试 但出现以下错误 System IO FileLoadException 无法加载文件或程序集 实用程序 版本 1 2 0 200 文化 中
  • 导出类时编译器错误

    我正在使用 Visual Studio 2013 但遇到了一个奇怪的问题 当我导出一个类时 它会抛出 尝试引用已删除的函数 错误 但是 当该类未导出时 它的行为会正确 让我举个例子 class Foo note the export cla
  • 有没有办法使用 i387 fsqrt 指令获得正确的舍入?

    有没有办法使用 i387 fsqrt 指令获得正确的舍入 除了改变精确模式在 x87 控制字中 我知道这是可能的 但这不是一个合理的解决方案 因为它存在令人讨厌的重入型问题 如果 sqrt 操作中断 精度模式将出错 我正在处理的问题如下 x
  • 是否有像 gccxml 这样的用于生成包装器的 C 标头解析器工具?

    我需要为一种新的编程语言编写一些 C 标头包装器 并且想要类似 gccxml 的东西 但不完全依赖 gcc 以及它在 Windows 系统上带来的问题 只需要读C而不是C 只要有完整的文档记录 任何格式的输出都可以 Linux Solari
  • 如何使用 wpf webbrowser 将数据发布到 Web 服务器

    我想从数据库获取数据并使用它来让用户登录到网站 我有一个包含 Web 浏览器控件的 wpf 页面 我有这样的代码 用于将用户登录到用 php 编写的网站
  • 在 MATLAB 中创建共享库

    一位研究人员在 MATLAB 中创建了一个小型仿真 我们希望其他人也能使用它 我的计划是进行模拟 清理一些东西并将其变成一组函数 然后我打算将其编译成C库并使用SWIG https en wikipedia org wiki SWIG创建一
  • 单线程公寓问题

    从我的主窗体中 我调用以下命令来打开一个新窗体 MyForm sth new MyForm sth show 一切都很好 但是这个表单有一个组合框 当我将其 AutoCompleteMode 切换为建议和追加时 我在显示表单时遇到了这个异常
  • 默认值 C# 类 [重复]

    这个问题在这里已经有答案了 我在控制器中有一个函数 并且我收到表单的信息 我有这个代码 public Actionresult functionOne string a string b string c foo 我尝试将其转换为类似的类
  • C# datagridview 列转入数组

    我正在用 C 构建一个程序 并在其中包含一个 datagridview 组件 datagridview 有固定数量的列 2 我想将其保存到两个单独的数组中 但行数确实发生了变化 我怎么能这样做呢 假设一个名为 dataGridView1 的
  • 手动将 ClientBase 集合类型从 Array[] 更改为 List<>

    我将自己的 WCF 代理与 Client Base 一起使用 我想做一些类似于 svc util 中的 ct 属性的操作 并告诉代理返回 List 集合类型 我不能使用 List 因为实体由 nhibernate 管理 所以我必须使用 IL
  • 操纵 setter 以避免 null

    通常我们有 public string code get set 如果最终有人将代码设置为 null 我需要避免空引用异常 我尝试这个想法 有什么帮助吗 public string code get set if code null cod
  • 当IRQL下降时,Windows中如何触发软件中断?

    我知道对于硬件中断 当 KeAcquireInterruptSpinLock 调用 KeLowerIrql 时 HAL 会调整 LAPIC 中的中断掩码 这将允许自动服务排队的中断 可能在 IRR 中 但是对于软件中断 例如 ntdll d
  • 在简单注入器中注册具有多个构造函数和字符串依赖项的类型

    我正在尝试弄清楚如何使用 Simple Injector 我在项目中使用了它 注册简单服务及其组件没有任何问题 但是 当组件具有两个以上实现接口的构造函数时 我想使用依赖注入器 public DAL IDAL private Logger
  • 将非算术类型作为参数传递给 cmath 函数是否有效?

    给定以下用户定义类型S具有转换功能double struct S operator double return 1 0 以及以下调用cmath http en cppreference com w cpp header cmath使用类型的
  • 使用(linq to sql)更新错误

    我有两个表 通过外键 CarrierID 绑定 Carrier CarrierID CarrierName CarrierID 1 CarrierName DHL CarrierID 2 CarrierName Fedex Vendor V
  • #pragma pack(16) 和 #pragma pack(8) 的效果总是相同吗?

    我正在尝试使用来对齐数据成员 pragma pack n http msdn microsoft com en us library 2e70t5y1 28v vs 100 29 aspx 以下面为例 include
  • 使用 Chrome 和 Selenium 设置 LocalStorage

    我正在尝试使用 OpenQA Selenium 和 Chrome 设置本地存储键和值 我认为这相当微不足道 但我似乎无法让它发挥作用 我对 C 很陌生 所以我可能错过了一些东西 无论如何 我有这个功能 public static void
  • 无法使 Polly 超时策略覆盖 HttpClient 默认超时

    我正在使用 Polly 重试策略 并且正如预期的那样 在重试过程中HttpClient达到 100 秒超时 我尝试了几种不同的方法来合并 Polly 超时策略 将超时移至每次重试而不是总计 但 100 秒超时仍然会触发 我读过大约 5 个

随机推荐

  • 如何让我自己的 JavaScript 函数具有必需的参数?

    当我在intellij idea中编写javascript时 我可以检查我正在调用的函数的参数 它会显示类似的内容 我不确定这是否是一个 intellij 功能 它了解标准库 或者它是否是一个 javascript 功能 可以让您将参数标记
  • FabricJS 触摸平移/缩放整个画布

    我需要在 FabricJS 画布上启用触摸缩放 平移 有些库允许在图像上执行此行为 请参阅捏缩放画布 https github com vash15 pinch zoom canvas 或通过鼠标单击事件 参见这个小提琴 http jsfi
  • 如何保持每 5 秒请求一次页面而不耗尽电池电量?

    我正在开发的 Android 应用程序需要每 5 秒在我的服务器上请求一个页面 但我担心这会消耗大量电池 有没有更简单的方法 我当前的方法是每 5 秒循环一次的服务 protected void onHandleIntent Intent
  • 如何使用 extern 在 C++ 中的源文件之间共享 Globe 变量?

    IDE 代码块 13 12 main cpp include
  • python继承:使用参数选择父类

    我在设计一些课程时遇到困难 我希望我的用户能够通过传递角色类型的参数 例如战士 向导 来使用Character 类 虚拟代码 class CharClass def init self level self level level clas
  • 在 MSTest 中如何查找要在 ClassInitialize 或 AssemblyInitialize 中运行的测试总数?

    使用 MStest 我想查找排队等待运行的测试方法的总数 我应该如何捕获这个值ClassInitialize or AssemblyInitialize 方法 我唯一得到的是 TestContext 它没有测试总数的详细信息 我实际上对此有
  • 在 awk 中使用双引号[重复]

    这个问题在这里已经有答案了 该命令将打印a echo line1 a b c awk print 2 如果我将单引号更改为双引号 就像这样 它将打印整行 echo line1 a b c awk print 2 为什么 我知道我应该使用单引
  • 如何为给定模式提供关系代数?

    员工 姓名 街道 城市 作品 人名 公司名称 工资 公司 公司名称 城市 管理 人员姓名 经理姓名 查找此数据库中所有不为第一银行公司工作的员工的姓名 假设所有人都为一家公司工作 并且允许人员出现在数据库中 例如 在员工中 但不能出现在作品
  • es6模块加载是如何工作的

    我去过reading https github com systemjs systemjs about https github com systemjs systemjs ES6模块加载器 https github com ModuleL
  • 对于异步Task,为什么需要Wait()来捕获OperationCanceledException?

    我正在遵循示例代码here http msdn microsoft com en us library dd997396 aspx了解异步任务 我修改了代码以编写任务工作与主要工作的一些输出 输出将如下所示 我注意到 如果删除 Wait 调
  • 在 F# 中表示错误的最惯用方式是什么

    我正在开发 F 项目 我想知道使用返回域错误的最佳实践是什么Result输入 F 我认为有几种方法可以做到这一点 继承的异常 type DomainException message inherit Exception message ty
  • Hive 命令行 如果不是在后台执行 MapReduce 作业,则选择查询所花费的时间不正确

    我正在运行配置单元查询 如下所示 Select count group name from table name group by group name 状态 正在运行 在应用程序 ID XXXX 的 YARN 集群上执行 VERTICES
  • 将焦点更改回控制台窗口

    我对Windows编程的了解接近于零 但现在我已经制作了一个从 Windows 控制台运行的 Forth 程序 它打开一个原始的图形窗口 问题是我想通过按键来控制程序 但是当程序启动时 焦点没有在控制台窗口上 而是在图形窗口上 如何改变后焦
  • Kubeflow Pipeline 终止通知

    我尝试添加一个逻辑 当管道由于某些错误而终止时 该逻辑将发送松弛通知 我尝试用ExitHandler 但是 似乎ExitHandler不能依赖于任何操作 你有什么好主意吗 我找到了一个使用的解决方案ExitHandler 我在下面发布我的代
  • C11 类型泛型表达式 - 为什么不直接添加函数重载?

    我刚刚读了维基百科的文章C11 http en wikipedia org wiki C11 28C standard revision 29 2011年12月发布的新版本C标准 我看到新增的功能之一是 类型泛型表达式 类型通用表达式使用
  • Python openAL 3D 声音

    我刚刚开始使用 python 正在制作音频操作程序 我正在尝试在我的 python 应用程序中使用 openAL 实现 3D 声音 但我只能让它工作 这是我的 3D 声音代码 from openal loaders import load
  • 无法从 NHibernate.Driver.SQLite20Driver 创建驱动程序

    这是引发异常的代码 public Configuration GetConfiguration var persister SQLiteConfiguration Standard UsingFile Test db ShowSql var
  • 如何设置新语言 IDE

    在工作中 我们使用专有语言 并使用带有简单代码突出显示的 Notepad 进行编程 这真的很烦人 所以我想做的是花一些时间来设置一个文本编辑器或现有的 IDE 来支持我的语言 我在谷歌上搜索了很多 有很多选择 在开始工作之前我想问你什么是最
  • 生成 Play 2 的 javascript 路由器的更简洁的方法

    目前我以相当详细的方式定义我的应用程序的 javascript 路由器 def javascriptRoutes Action implicit request gt import routes javascript Ok Routes j
  • 有没有办法立即检查目录是否正在使用?

    我想使用 Directory Move 移动目录及其所有子目录 不过 在此之前 我想检查该目录及其子目录中的任何文件和子文件是否正在被其他进程使用 然后 在移动之前 我想将目录锁定到其他进程 这样我就可以确保 Directory Move