我正在帮助我叔叔将他所有的摄影图像从 Windows 机器的内部和外部硬盘驱动器传输到他新买的 NAS,我们偶然发现了一个小问题(仅发生在 3,000 个文件上..),名为“文件名/文件夹名称太长,无法复制”。所以..我正在寻找一个可以为我找到所有具有特定名称长度的文件的应用程序。
Windows 资源管理器可以按名称、类型、大小等进行搜索,但据我所知,它无法按名称长度进行搜索。因此,我正在寻找可以这样做的应用程序。
注意:这可能是一个提示命令,只要结果可以轻松导出。
额外福利!同样适用于命令提示符:从同一应用程序更改文件/文件夹名称!破折号、点和空格实际上是不必要的,可以缩短名称,因此也许可以传输!
答案1
Windows 资源管理器以及 .NET Framework 应用程序在处理超过 260 个字符的路径时会出现问题(请参见此处:https://stackoverflow.com/questions/1880321/why-does-the-260-character-path-length-limit-exist-in-windows)
为避免这种情况,您可以简单地通过使用 subst.exe 将其映射到驱动器号来缩短路径,如下所示:
subst.exe <DriveLetter>: <super long path without trailing backslash>
例子:
subst.exe A: C:\users\%username%\appdata\local\temp
这会将我的超长路径(C:\users\%username%\appdata\local\temp
在本例中)映射到驱动器号 A:,从而将路径长度缩短 20 多个字符。这也适用于 NAS 上的 UNC 路径。
该驱动器在 Windows 资源管理器中可见,因此您只需打开命令行即可映射该驱动器。当您注销/重新启动 PC 时,它将自动取消映射。
答案2
我会简化你的问题。
您的文件规范(8.3 文件名和文件夹名称的组合)超出了 255 个字符的限制。这可能是由于文件夹嵌套较深造成的。
对于无法移动的文件,请将其文件夹移动到驱动器的根目录,然后执行传输操作。现在应该可以正常工作了。