【发布时间】:2016-06-29 04:44:54
【问题描述】:
我有一个用于 Robocopy 命令的小型 Windows VB 前端。这是将参数传递给 Robocopy 的代码行:
.StartInfo.Arguments = """" & txtCopyFrom.Text & """ """ & txtCopyTo.Text & _
""" /E /B /XJ /XF ""~*.*"" ""*~.*"" ""desktop.ini"" ""Thumbs.db"" "".lock"" "".Sync*""" & _
" /xd ""Rubbish"" "".Sync*"" "".Box Sync"" ""_private"" ""Outlook Files"" /FFT /R:2 /W:5 /V /TEE"
一切正常,除非用户想要修改正在复制的文件。用户从他们的程序中得到一个错误,然后在文件被复制时必须等待几分钟(文件最大可以达到 1GB,并且正在被自动复制到 USB 记忆棒中。
是否有开关或某种方法可以让 Robocopy 在复制文件时不锁定文件?显然 Robocopy 需要中止复制并等待文件可用,以便再次尝试。我在网上搜索了解决方案,但所有问题似乎都与 Robocopy 没有复制锁定文件的情况相反。
关于我在做什么的更多细节:
我的代码使用上述标志每 30 秒调用一次 Robocopy(我知道 robocopy 可以自行循环,但它并没有达到我想要的效果)。我设想我的应用程序只是在一天开始时运行,然后在一天结束时关闭。在另一台机器上,用户将打开一些第三方图像查看软件,该软件将锁定正在打开的文件,更新一些图像的元数据,然后保存更改。问题是当我的软件在用户之前锁定图像文件,然后用户无法编辑他们的文件。
谢谢
克里斯蒂安
【问题讨论】:
-
将更快的本地副本复制到临时文件并改为复制?