从本月起我们的成品可能不再遵从较为严格的路径长度限制。这篇文章将简单介绍如何在 Windows 系统中启用长路径功能。


Windows 系统中较为保守的最大路径长度限制一直为人所诟病。在 Windows 系统的默认配置下,最大路径长度为 MAX_PATH,定义为 260 个字符。除去路径开头的驱动器号、冒号、反斜杠以及路径末尾的终止字符,实际可用的部分只有 256 个字符。而在 Windows 的文件资源管理器中,由于一些额外保留字符限制,实际可使用的路径长度会更短一些。

256 个字符看似不少,但在我们的命名规范下,项目目录名、片名、特典名、CD 目录名、歌曲名,这些字段如果有多个较长的部分累加在一起,就很可能超过长度限制。

长年以来,我们都在与路径长度限制进行抗争,压缩各个字段的命名,尽最大努力压缩到 240 个字符之内。但是在 2024 年的今天,我们还是得说,240 个字符真的是太少啦!

一方面,即使我们保证压缩到 240 个字符之内,也无法保证在观众本地就不超过限制,因为显然观众并不一定下载到磁盘根目录,并且下载时多个 10-20 字符的前缀路径也很常见;另一方面,从长远角度来看,制作一些大合集项目时,即使我们每个字段长度都压缩到最小,有时也不可避免会超过限制。


针对最大路径长度限制的问题,Windows 给出了一个不算完整的解决方案:
从 Windows 10 版本 1607 开始,可以启用长路径功能。

以下有三种启用长路径的方法,可以根据自身情况进行选择。

1. 通过 PowerShell 进行设置

(1). 使用管理员模式启动 PowerShell
(2). 执行以下命令

New-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\FileSystem" `
-Name "LongPathsEnabled" -Value 1 -PropertyType DWORD -Force

(3). 重启计算机

2. 通过注册表文件 (.reg) 进行设置

(1). 新建一个 .txt 文本文件
(2). 将以下命令复制到文件中

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\FileSystem]
"LongPathsEnabled"=dword:00000001

(3). 将文件后缀名改为 .reg
(4). 双击 .reg 文件执行
(5). 重启计算机

3. 通过组策略编辑器进行设置 (需要 Windows 专业版)

(1). 使用 Windows键 + R 组合键调出 运行 窗口,输入 gpedit.msc 启动组策略编辑器
(2). 按以下路径选择配置项,开启长路径功能
英文路径:

Computer Configuration > Administrative Templates > System > 
Filesystem > Enable Win32 long paths

中文路径:

计算机配置 > 管理模板 > 系统 > 文件系统 > 启用 Win32 长路径

(3). 重启计算机


开启长路径功能之后,常规的 BT 软件就可以正常下载超长路径的种子了。不过需要注意的是,并非所有应用程序都支持长路径,比如 Windows 自带的文件资源管理器,即使开启长路径功能也无法处理超长路径的文件。
如果有编辑超长路径文件的需求,可以使用第三方的更强大的工具,比如 One Commander

sinsanction
Latest posts by sinsanction (see all)

VCB-Studio 视频播放器推荐及教程索引

(Image Credit: しおん@pixiv) 目前我们推荐的播放器可以分成两大阵营:mpv 和 MPC。前者跨平台,后者仅限 Windows。 mpv mpv 可以在 Windows、macOS 和桌面...

阅读全文

基于 MPC-HC 和 madVR 的播放器配置入门

之前的 MPC 系教程和 madVR 教程都有些过时了。老教程直接通过注册表来设置虽然简单直接,但不利于维护,索性重新写一篇。 和 mpv 的教程 类似,本教程只提及...

阅读全文

跨平台播放器 mpv 配置入门

mpv 是著名开源项目 MPlayer 的分支,因其对最新软硬件平台、视频标准以及各种高画质选项的支持而广受好评,也是目前非 Windows 平台上高画质播放器的不二选...

阅读全文

19 条评论

  1. 一直都开着。甚至开了很多年,但是总感觉没有用!年轻时习惯把学习资料一层一层的隐藏,导致有时候有些软件就会报个错

    原来是【不过需要注意的是,并非所有应用程序都支持长路径,比如 Windows 自带的文件资源管理器,即使开启长路径功能也无法处理超长路径的文件。】
    😯

  2. 目前下载番剧还没有遇到这个问题欸,安装qBitttorrent的时候有个选项是解除WINDOWS长路径限制,不知道有没有用

      1. 回复给逞零词: Linux限制更严格,几乎绝大多数的文件系统都是路径总长度256字符,而且没有任何解决方案。
        256这个值是硬编码在内核里的。我对内核不太熟,听说就算铁头娃改成更大的值去自行编译内核,也会因为inode的数据结构固定的原因实际上无法使用。
        所以只能依赖bt软件本身去重命名文件了,基本上就是等报错再人肉改了。

        1. 回复给Mr.win7: 错误的,是文件名而不是总长度,长度是定义在文件系统而不是在内核,如ext4对于名字长度是一个8bit的字段。

          在 Linux 上:文件名的最大长度为 255 个字节。 文件名和路径名组合的最大长度为 4096 个字节。 此长度与操作系统支持的 PATH_MAX 匹配。 字符的 Unicode 说明可能占据几个字节,所以组成路径名和文件名最大字符数会有所不同。 实际限制是路径和文件组件中的字节数,可能对应于相同字符数。

          1. 回复给ΤΑΤ: 回去仔细重读了一下,是我搞混了,对不起。。。你是对的。太丢脸了
            是文件名的长度难以通过修改文件系统下的名字长度做修改。所以主要是文件名长度在linux下不好调整。

欢迎留言

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据