從本月起我們的成品可能不再遵從較為嚴格的路徑長度限制。這篇文章將簡單介紹如何在 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 平台上高畫質播放器的不二選...

阅读全文

20 条评论

  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来减少垃圾评论。了解我们如何处理您的评论数据