我尝试使用powershell命令 copy-item
作为 xcopy
将一个磁盘的内容复制到另一个磁盘 .
copy-item -Path h:\* -Destination g:\ -Recurse -Force
但是,我遇到了以下错误:
Copy-Item:指定的路径,文件名或两者都太长 . 完全限定的文件名必须少于260个字符,目录名必须少于248个字符 .
我得到这些错误足以阻止手动搜索和复制具有长路径的文件或文件夹 . 避免这个问题的最佳方法是什么?
我尝试使用powershell命令 copy-item
作为 xcopy
将一个磁盘的内容复制到另一个磁盘 .
copy-item -Path h:\* -Destination g:\ -Recurse -Force
但是,我遇到了以下错误:
Copy-Item:指定的路径,文件名或两者都太长 . 完全限定的文件名必须少于260个字符,目录名必须少于248个字符 .
我得到这些错误足以阻止手动搜索和复制具有长路径的文件或文件夹 . 避免这个问题的最佳方法是什么?
2 回答
据我所知
robocopy
自动处理这个问题(至少你必须明确禁用对长路径的支持) . 所以你可以使用如果你对本机命令不是太不利,而不是纯粹的PowerShell解决方案 .
通常,您可以将
\\?\
添加到路径中以允许处理最多32k字符的路径,但很可能这对.NET可能没有帮助 .在Codeplex上,Microsoft托管experimental long path wrapper,它提供的功能使其更容易使用长度超过System.IO命名空间当前259字符限制的路径 .
在Powershell中使用此包装器复制文件的示例:
其他样品可以找到here .