Windows File/Directory 锁定
Windows File/Directory Lock
比如说,我正在路径 a/b/c 中复制或创建文件 foo.txt。在复制时,是否可以重命名路径的任何部分。我尝试更改 c(直接父级),但它最终进入拒绝访问,而重命名 b 有效。为什么这样?而且,假设我同时将 2 个文件 foo1 和 foo2 复制到 Windows 文件系统上的同一目录;它会影响任何性能吗?或者,任何复制过程都会锁定文件夹吗?如果有,到几级?
文件系统本身没有任何内容可以阻止您在写入 foo.txt 时重命名 a、b 或 c。我怀疑您正在使用的实用程序打开了具有拒绝其他进程写入或删除对该文件夹本身的访问权限的文件夹(这与其中的文件无关)。
在 NTFS 中,重命名文件夹(或什至将其移动到同一卷上的某处)不会导致文件夹的标识发生更改。我想该实用程序会打开(最简单的)文件夹,以防止它从下面被删除。合理的防御行为。
移动文件夹(在同一卷内)也不会影响对其包含的文件进行写入的位置。它们是按需从可用扇区中分配的,并且这些扇区所在的位置与文件层次结构提供的概念位置无关。所以,我看不出中间副本重命名会对性能产生什么影响——超过重命名本身的(可忽略的)价格
比如说,我正在路径 a/b/c 中复制或创建文件 foo.txt。在复制时,是否可以重命名路径的任何部分。我尝试更改 c(直接父级),但它最终进入拒绝访问,而重命名 b 有效。为什么这样?而且,假设我同时将 2 个文件 foo1 和 foo2 复制到 Windows 文件系统上的同一目录;它会影响任何性能吗?或者,任何复制过程都会锁定文件夹吗?如果有,到几级?
文件系统本身没有任何内容可以阻止您在写入 foo.txt 时重命名 a、b 或 c。我怀疑您正在使用的实用程序打开了具有拒绝其他进程写入或删除对该文件夹本身的访问权限的文件夹(这与其中的文件无关)。
在 NTFS 中,重命名文件夹(或什至将其移动到同一卷上的某处)不会导致文件夹的标识发生更改。我想该实用程序会打开(最简单的)文件夹,以防止它从下面被删除。合理的防御行为。
移动文件夹(在同一卷内)也不会影响对其包含的文件进行写入的位置。它们是按需从可用扇区中分配的,并且这些扇区所在的位置与文件层次结构提供的概念位置无关。所以,我看不出中间副本重命名会对性能产生什么影响——超过重命名本身的(可忽略的)价格