Windows文件名过长带来的奇妙BUG


起因

当我在网页版Jellyfin直接播放视频时,虽然内网能够满足数千兆每秒的网速,这些视频仍然经常卡顿(后面分析是网页播放是直接用NAS的核显解码,但它性能捉急),我就选择直接下载到本地。

由于Jellyfin的限制,下载到本地的文件中文名称是经过URL编码后的,比如其中一个文件为“%E8%83%86%E5%A4%A7%E5%85%9A+S01E07.mkv”,看起来是16进制的Unicode编码。

问题

后续在我清理磁盘时,我发现Windows在图形界面上直接删除此类文件时会异常卡死,而换使用终端命令删除时居然无法定位到这份文件,它就像一个黑户一样钉在了磁盘上,Windows的文件系统拿它丝毫没有办法。这就很奇妙了,之前从未遇到过这种情况。

解决

经过一系列查询检索,最终定位到Windows的一个奇妙特性: Windows系统默认的最大路径长度为260个字符(包括盘符、文件夹名、文件名及分隔符\)。如果文件或文件夹的完整路径超过此限制,系统工具(如资源管理器)可能无法正常操作。 一时间确实有点难绷,这种古老的问题能存续到现在也是神奇。最后索性启动Manjaro Linux,干净利落删除了这个文件。

后面和朋友讨论时,他提出了个更简单的操作方法:使用WSL的终端操作磁盘上的文件。确实可行,连重启切系统的功夫都不用了。

声明:AweiP Cache|版权所有,违者必究|如未注明,均为原创|本网站采用BY-NC-SA协议进行授权

转载:转载请注明原文链接 - Windows文件名过长带来的奇妙BUG


且愿饮冰而热血不凉