我有一种情况,不可否认很容易修复,我只有一行代码如下: -
My.Computer.FileSystem.MoveFile(f_source, f_dest, True)
对于覆盖选项,则为true。
我在批量文件移动过程中有一个实例,有时候,有时会留下源文件,但目标文件会被成功复制。
它周围有错误捕获(VB.NET/try/catch),但没有触发错误。它似乎只发生在远程(VPN)访问期间,现场的相同操作没有表现出来。
我怀疑它是在某种缓冲区填充期间发生的,因为移动是来自移除驱动器,这是一个圆形的Robin。
我已经在移动后添加了一个检查以查看是否存在这两个文件,并在它们执行时删除源。我可以确认这已被触发,到目前为止,它已经解决了我的问题。
我没有使用任何背景或线程操作。令我感到惊讶的是,控件正在回传给我的程序,并且未完成且没有错误。这是一个已知的问题吗?
我还没有测试过其他的movefile选项,当然,我总是可以复制然后删除所以它没什么大不了但它确实让我抓狂了。
答案 0 :(得分:2)
我认为它遵循System.IO.File.Move
方法的相同规则。在评论中,它说:
如果您尝试跨磁盘卷移动文件并且该文件正在使用中,则该文件将复制到目标,但不会从源中删除。
I / O中可能存在某种类型的延迟,尤其是在进行任何类型的文件扫描(防病毒等)的情况下。