文件名太长(仅适用于 Windows 资源管理器)

文件名太长(仅适用于 Windows 资源管理器)

当我将目录结构复制到新位置时,如果目标文件夹的名称比源文件夹的名称稍长,则遇到以下错误,表明文件名太长。

有趣的是,我随后使用 Scooter Software 的 Beyond Compare 应用程序将源文件夹与目标文件夹进行比较,以识别无法复制的文件。我惊讶地发现 BC 能够将文件复制到目标文件夹,因此两个文件夹 100% 匹配。

我认为有问题的文件名长度为 258 个字符。之前,根据我在 Windows 资源管理器中可能看到的错误消息,我认为视窗文件名(包括路径)的长度限制为 255 个字符。由于我能够使用 Beyond Compare 复制以下 258 个字符的文件名,因此情况似乎并非如此。

Windows 文件名长度有限制吗?为什么 Windows Exploere 的最大长度是 255?

在我看来,“名字太长”的限制

C:\Expand\tfs2010\Healthcare-Finance_IT\Main\MLR Rebates Web Services\Load_MLR_REBATE_IBOR_INFO\Load_MLR_REBATE_IBOR_INFO\Service References\IborServiceReference\Load_MLR_REBATE_IBOR_INFO.IborServiceReference.locateProfileBySourceSystemIdResponse.datasource

在此处输入图片描述

答案1

Windows 的底层文件系统 NTFS 比旧版 Win32 子系统 (win32k.sys) 所认为的要灵活得多。通过直接访问 NTFS 并绕过 Windows Shell,可以实现许多有趣的可能性,例如,在同一目录中的文件名称仅在大小写上有所不同(如 C:\Users\hi 与 C:\Users\HI)。文件路径长度限制是这些旧版限制中的另一个,可以追溯到 Windows 95 或更早的版本(甚至可能是 DOS)。Beyond Compare 似乎绕过了 Windows Shell,对于一个强大的文件复制程序来说,这确实是一个非常明智的做法。

这里寻求微软官方的解答。

答案2

Windows 中的最大路径长度为32,767 个字符

要指定这样的路径,请使用 \\?\UNC\ 前缀,即 UNC 路径。

例如, ”\\?\UNC\服务器\共享“, 在哪里 ”服务器“是计算机的名称,并且”分享" 是共享文件夹的名称。

这些前缀不作为路径本身的一部分使用。它们表示路径应以最小的修改传递给系统,这意味着您不能使用正斜杠来表示路径分隔符,也不能使用句点来表示当前目录,也不能使用双点来表示父目录。

因为不能在相对路径中使用“\\?\”前缀,所以相对路径总是限制为总共最大路径字符,即限制为260个字符。

相关内容