递归复制具有长文件名(超过 260 个字符)的文件夹

Posted

技术标签:

【中文标题】递归复制具有长文件名(超过 260 个字符)的文件夹【英文标题】:Recursively copy folders with long file names (more than 260 chars) 【发布时间】:2018-02-01 20:36:15 【问题描述】:

我正在尝试自动复制/复制驱动器。许多驱动器的文件名很长,导致进程中途失败。

我正在使用这个复制命令,但是这两个都失败了。

XCOPY /E c:\folder-you-want-to-copy\*.* C:\destinationfolder\ 

copy-item -Path K:\* -Destination E:\ -Recurse -Force

Copy-Item : 指定的路径、文件名或两者都太长。完全限定的文件名必须少于 260 个字符,目录名必须少于 260 个字符。

然后我尝试了 SO help power shell from here 和 SO help here,但我的机器的 Win 10 策略中缺少启用选项

如何使用长文件名/路径将文件从一个驱动器递归复制到另一个驱动器?

【问题讨论】:

【参考方案1】:

robocopy 不遵守 260 个字符的限制(除非您使用 /256 开关):

robocopy K:\ E:\ /E

/E 用于复制子文件夹,包括空子文件夹,如果您不想复制空文件夹,请改用/S

Full robocopy syntax

【讨论】:

将尝试这个并让您知道,1) 我需要安装 robocopy 吗? 1 TB 或 2TB 通过 USB 3 需要多长时间 2) 它没有镜像,对吗?只是复制文件和结构? robocopy 包含在大多数现代版本的 Windows 中,无法评论时间,因为它取决于文件的数量及其大小。是的,这是一个直接的副本,镜像使用不同的开关(如果需要,请检查语法) 如果崩溃,是否有从当前位置继续的选项,是否可以进行并行复制以加快速度。 @Transformer robocopy 本身没有恢复选项,但它会跳过未更改的文件,因此您可以快速重新运行。对于多线程,看看/MT switch...如果它经常崩溃,你可能有一个非常狡猾的文件,因为它是一个非常可靠的程序!

以上是关于递归复制具有长文件名(超过 260 个字符)的文件夹的主要内容,如果未能解决你的问题,请参考以下文章

文件名对目标文件夹可能过长删除不掉求大神解决呀!!

文件路径长了255个字符,这个“255”如何解释?

OpenFileDialog 在超过 260 个字符的路径上返回空字符串(或根本不返回)

[环境配置][C++]ceres编译提示超过 OS 最大路径限制。完全限定的文件名必须少于 260 个字符

路径超过 260 个字符时出现 System.IO.DirectoryNotFoundException [重复]

C#:有啥办法可以绕过完全限定路径的 260 个字符限制? [复制]