递归复制具有长文件名(超过 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 个字符)的文件夹的主要内容,如果未能解决你的问题,请参考以下文章
OpenFileDialog 在超过 260 个字符的路径上返回空字符串(或根本不返回)
[环境配置][C++]ceres编译提示超过 OS 最大路径限制。完全限定的文件名必须少于 260 个字符