我们的本地网络上有两台计算机,均运行 Windows XP。我的主计算机已为 设定了本地网络共享\etc\install
。
我有一个文件夹,里面有两个 1GB 的 .zip 文件,其中一个我已经用了一段时间,另一个是新的——我们把它们称为OLD.zip
和NEW.zip
。使用 Windows 资源管理器拖放功能,我尝试将新文件NEW.zip
从主计算机复制到实验室计算机。但它不起作用;我收到一条错误消息:
Cannot copy NEW.zip: Access is denied.
Make sure the disk is not full or write-protected and
that the file is not currently in use.
这真的很奇怪,因为当我尝试复制时,我没有收到该错误消息OLD.zip
;它工作正常。(而且我的实验室计算机硬盘上有 38GB 的可用空间,所以我没有用完空间。)
我尝试重新启动主计算机,但问题仍然存在。
这可能是什么原因造成的?我该如何解决?
答案1
很可能是权限问题,但以下是它可能令人困惑的原因。我假设可能发生的情况如下:
- 您最初将
NEW.zip
文件放在具有更严格权限(在 NTFS 级别)的位置,这样尝试复制的网络用户将无法访问。 - 你已移动将 NEW.zip 文件复制到具有较少网络访问权限限制的网络可访问文件夹,完全旨在让网络用户可以访问该文件。
- 然而,当文件已移动在 Windows 中,它们位于同一驱动器上保留先前的权限. 请参阅此 Microsoft 知识库文章。 引用:
默认情况下,对象会从其父对象继承权限,无论是在创建时,还是在将其复制或移动到其父文件夹时。此规则的唯一例外是当您将对象移动到同一卷上的其他文件夹时。在这种情况下,原始权限将保留。
- 在将文件复制到同一文件夹内时
Copy of NEW.zip
,您重置从父文件夹继承的权限(限制较少的权限) - 因此,你可以复制复制但不是原始文件,仍然保留更严格的权限。
我在工作中经常看到这种情况,当一些经验不足的开发人员将 ZIP 存档解压到他们的桌面时,然后移动文件夹移至 wwwroot\inetpub,然后他们很困惑为什么他们无法通过他们的 Web 服务器访问该文件夹。这都是因为当在同一驱动器上时,权限会随移动的项目一起移动。副本(或跨驱动器移动)会从父文件夹获得一组新的权限。
这有道理吗?这是可能的情况吗?