我们正在将用户从OSX迁移到Windows 10.在Mac上,用户从来没有限制他们的path长度,所以随着时间的推移,他们创build了许多文件/目录结构,超过了Windows上的最大授权。
未来,用户将不得不面对Windows在2017年仍然施加的(愚蠢的)限制。但是现在的重大问题是当我必须将他们的数据从旧的Mac移动到新的PC时。 当Windows发现文件path太长的文件时,我收到错误。
我启用了GPO策略启用win32长path ,但这并没有帮助。 我认为微软修复了Windows API,但不是像Windows资源pipe理器那样的应用程序。
我find了TLPD实用程序。 它扫描文件树并报告超过最大允许长度的文件。 然后用户必须重命名或垃圾文件。 非常耗时!
我也发现长path定影器工具。 这应该允许复制具有太长path长度的文件,但是我没有使用它。 这很慢,最后只是崩溃。
你有更好的解决scheme吗?
我会尝试使用robocopy来传输,它通常是很好的解决这个限制。 仔细检查完成后,看是否自动截断任何名称。
https://technet.microsoft.com/en-us/library/cc733145(v=ws.11).aspx
您还需要validation资源pipe理器和应用程序是否能够在Mac上encryption之前达到较长的文件长度。
编辑:一旦他们被复制访问这些文件…这是Windows API的限制踢。如果他们相对不常见,你可以使用扩展长度的前缀或替代跳转到这些path…
https://msdn.microsoft.com/en-us/library/aa365247(v=vs.85).aspx#maxpath
https://technet.microsoft.com/en-us/library/bb491006.aspx
如果它们足够常见,手动解决方法是一个痛苦,那么我会build议在Robocopy作业上尝试/ FAT参数。 我从来没有使用它,但它似乎使用8.3命名scheme可能会自动截断这些path为您; 不知道这是否会导致其他问题。 另一种select是,如果这些机器是Windows 10,则可以启用registry键来解决Explorer中的限制(请参阅上面的MSDN文章)。