这些路径在资源管理器里一路点下去,最终提示找不到路径,在cmd下提示 system cannot find the specified path;此外雪上加霜的是这些路径可能还有权限的问题,通过资源管理器里的security下的advance将安全传播到子目录,会提示 cannot enumerate objects in the container类似的提示,cmd下的takeown等也类似有找不到specified path的问题而无法起作用。用我此前开发的removelongpath也无法删除,会提示 access is denied (因为权限不对)。
我天才的试了一下rsync里的sync功能,居然可行!通过 rsync (如deltac)里的sync (即client上没有的server端文件要被删除)来实现删除这些长路径。长路径放到server端。为了解决windows下的权限问题,把deltas的服务设为管理员权限。在客户端使用 –perms选项。
原因大概是因为rsync是个mingw的仿win环境,可以绕过win本身设置的一些限制,比如max path这些。