OneDrive如何使其文件夹不适用于较旧的Windows版本?


58

在2017年秋季的Windows 10创作者更新之后,无法使用以前的Windows版本访问OneDrive文件夹。在官方站点上描述了这种奇怪的情况:

如果您已安装Windows 10的2017年秋季创作者更新并将OneDrive文件同步到外部驱动器,则如果将外部驱动器移至运行早于2017年秋季创作者更新的操作系统的计算机上,则可能无法打开OneDrive文件对于Windows 10。

建议的解决方法是“使用运行Windows 10(或更高版本)的2017年秋季创作者更新的计算机打开内容”

我已经通过插入带有OneDrive文件夹的硬盘驱动器成功地重现了Windows 7的问题,该文件夹是使用Windows 10以前创建的。现在,当我尝试对目录执行某些操作(将其删除或cd放入目录中)时,出现错误消息:

The file cannot be accessed by the system.

根据的说明chkdsk,FS中没有逻辑错误,我也是该文件夹的所有者,并且具有所有安全权限。没有进程正在使用该卷。无论如何,我无法对此文件夹(并且仅此文件夹)执行任何操作。什么是阻止机制?

Answers:


72

NTFS具有称为“ 重新解析点”的功能,其中可以标记文件或目录以供操作系统进行特殊处理。它用于实现许多功能-例如,卷挂载点(Unix式的驱动器号替代);连接和符号链接;GitVFS稀疏目录;实际存储在WIM映像中的文件;已卸载到磁带或其他慢速存储的文件;等等。

OneDrive的最新版本还使用重新解析点来实现“在线文件”,它们最初是占位符,但按需下载。较早的版本是在shell级别执行此操作的,不适用于许多程序。使用重新解析点并将自动下载移至核心操作系统,使它们与本地文件几乎无法区分。

当通过较旧的OS访问路径时,新的标签自然会导致错误。NTFS驱动程序不知道如何处理此类项目,因此它只是拒绝访问。例如,它可能显示一个空目录,但是当较旧的OS尝试写入该目录时,它可能很快导致更多损坏。

您可以通过Cmd 使用fsutil reparsepoint来查看附加到文件或目录的reparse point标记(如果有)。


11
你说的没错 fsutil reparsepoint query OneDrive显示数据,并fsutil reparsepoint delete OneDrive成功“解锁”目录。
enkryptor

1
修复点是否不可扩展/不可安装?当然,Windows操作系统本身不支持GitVFS。
usr

3
实际上,Windows OS确实进行了更改,以支持GitVFS。IIRC,它始终具有“最低Win10版本”的要求。与OneDrive一样,我认为它是部分支持–用户空间或自定义驱动程序可以挂接到 OS的能力...不知道这是否意味着支持任意重新解析点,还是是否意味着支持特定的重新解析点,但是让实现是可安装的。
grawity

4
@usr展望未来,ProjFS可能是类似功能的受支持选项,因为它可以完全在用户模式下实现。不过,它尚未在稳定版本中提供。ProjFS本身(是?)实现为文件系统过滤器驱动程序,可以作为许多Windows版本(我相信可以追溯到XP)的扩展点使用。OneDrive本身使用(使用?)CldFlt(“ Cloud Files Mini Filter Driver”)。
鲍勃(Bob)
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.