我正在尝试正确命名 MP3,但长度却达到了 129 个字符(不是 128 个?)。NTFS 支持 255 个字符的文件名,我该如何解决这个问题?
星球大战 - 6 - 绝地归来 - 2 - 07 - 恩多战役 2,莱娅受伤,决斗开始,超越堡垒,黑暗模拟.mp3
答案1
整个路径名(包括反斜杠字符)的总字符数可能超出了 260 个。
路径中有多少个字符,包括 mp3 文件的名称?
答案2
在 Windows 中,默认路径总长度不得超过 260 个字符(如果路径是目录或只是为了四舍五入,则可能使用drive
+ :\
+ 255 characters of filename
+ null terminator
+ 作为最终字符\
)。这是 DOS 8.3 名称时代的遗留,其中 260 个字符的路径是一条非常深的路径。
您的文件夹路径可能已经很长了,因此文件名的剩余部分只有 129。如果您想要更长的路径,则有几种解决方案:
- 使用完全限定文件名使用
\\?\
前缀,这样您可以在路径中使用最多 32767 个字符‡ - 重命名路径中的文件夹以使其更短
- 挂载包含该文件的文件夹进入驱动器字符
subst
/mountvol
/New-PSDrive
/磁盘管理控制台。这样,您最多可以使用 255 个字符作为文件名 - 创建一个交界处/符号链接到路径上的另一个较浅的文件夹。您无法创建驱动器号的链接,因此,如果您使用安装方法,则无法获得文件名
从 Windows 10 开始,还有另一种选择删除 MAX_PATH 限制§HKLM\SYSTEM\CurrentControlSet\Control\FileSystem LongPathsEnabled
. 您可以通过注册表设置或设置来启用它计算机配置>管理模板>系统>文件系统>启用 NTFS 长路径在组策略中
请注意,文件夹有不同的限制。如果你在 PowerShell 或 .NET 中创建一个名称很长的新文件夹,则会出现以下错误
指定的路径、文件名或两者太长。完全限定文件名必须少于 260 个字符,目录名必须少于 248 个字符。
这是因为它“路径允许 248 个字符,文件名允许 12 个字符。”
MAX_PATH,将文件路径限制为 259 个字符(不包括终止空字符);将当前目录限制为 258 个字符(不包括尾随反斜杠和空字符);将新目录的路径限制为 247 个字符(从 259 中减去 12 个,为 8.3 文件名留出空间)。
阅读更多:
‡最大路径为 32,767 个字符,这是近似值,因为
\\?\
前缀可能会在运行时被系统扩展为更长的字符串,并且此扩展适用于总长度。§从 Windows 10 版本 1607 开始,
MAX_PATH
已取消对常见 Win32 文件和目录功能的限制。但是,您必须选择采用新行为。
答案3
如果您需要复制路径较长的文件,robocopy 可以很好地完成这项工作。
答案4
Windows 7 允许您保存长度超过 256 个字符的文件名(包括路径名),并且也可以轻松访问它们。您可能遇到的唯一小困难是将它们从一个地方复制到另一个地方,但您将看到一个弹出窗口,询问您是否要更改文件名、不复制文件或按原样保存。我总是按原样保存,从来没有遇到任何问题。我可能有几百个文件名超出了限制。