我需要备份网络共享上的一些文件。但是,我需要在刻录磁盘之前将这些文件复制到本地驱动器,因为这些文件可能正在使用中。有些文件无法复制,因为文件路径太长。除了更改文件结构之外,还有其他解决方法吗?
答案1
在 Windows Vista/7 中,最大路径长度为 260。我可以推荐三种解决方案:
- (如果路径太长)首先将文件夹复制到 Windows 资源管理器的上层,然后将其移动到本地计算机
- (如果文件名太长)首先尝试使用存档应用程序对其进行 zip/rar/7z 压缩,然后将存档文件复制到本地计算机,然后提取内容。
- 使用第三方应用程序。
所有这些建议都假设您对网络共享文件夹/计算机具有某种写入权限。如果您无法执行任何这些操作,则可能需要管理员的帮助。
答案2
robocopy /E source destination
Windows 7 及以上版本(包括 Windows 10):
Robocopy XP027 是 Windows 7 及以上版本上的标准命令。
由于 Robocopy 仍在维护,Windows 版本 7 以上可能有其他 Robocopy 版本。
请阅读上面的链接,了解有关
Robocopy 特定版本限制的更多详细信息。
NT 4 / Windows 2000:
Windows Server 2003 资源工具包工具包括 Robocopy XP010,
可以在 NT 4/Windows 2000 上运行。
Windows 95 或 NT 3.5:
Robocopy 不能在 Windows 95 或 NT 3.5 上运行。(Robocopy 是一个 Unicode 应用程序)。
Windows 95 或 NT 3.5 解决方法:
Microsoft Robocopy GUI 会将 Robocopy XP026 安装到 C:\Windows\system32,
此版本可以在较旧的操作系统上运行,
并包含 XP027 (/BYTES) 的一些功能,但错误级别处理完全被破坏。
Robocopy 的“作业”和“监视源”选项提供了一种设置计划任务以使用 Robocopy 命令运行批处理文件的替代方法。
答案3
通过在路径前添加 前缀,您可以访问最长约 32,767¹ 个字符的路径\\?\
。
\\?\C:\Some\Really\Long\Path
这适用于命令提示符和任何其他使用 Win32 Unicode Api 方法的程序,包括 C# 应用程序和 .Net 框架中编写的任何其他程序。
(文档)
它确实需要一个支持长路径的文件系统(例如 NTFS),但如果您有长路径问题,那是必然的。
请注意,某些应用程序和许多本机工具(如 Explorer)在这些路径上都会遇到问题所以利用这一点来让自己脱离困境,而不是陷入困境。
您还可以使用变体\\?\UNC\
来访问跨网络共享的长路径......
\\?\UNC\server_name\share_name\...
¹ 对于那些感兴趣的人来说,是32,767 不是 32,768,因为它是以空字符结尾的字符串,但\\?\
可能会扩大,消耗一些字符,所以不要依赖于计数的精确性。