我在这个网站上看到了这个问题的多个版本,但似乎没有一个能解决我的问题,所以这里是:
我正在尝试使用System.Copy
. 目的地(如果存在)应被覆盖。我已经使用一行代码大约一个月了,没有问题:
IO.File.Copy(SourceFile, DestFile, True)
但问题开始于大约一周前,当时我开始进行更高级的检查。部分锁定的文件无法复制,并且目标被删除。另一方面,锁定的文件可以正常工作:它们只是触发文件正在使用异常。
所以我在启动副本之前添加了这一行:
Using TestForAccess As New IO.FileStream(SourceFile, IO.FileMode.Open, IO.FileAccess.Read, IO.FileShare.None) : End Using
如果文件正在使用中,这应该会引发错误。但它是敏感的。某些文件(例如 Thunderbird 的 abook.mab)会在此添加的代码中触发错误,而之前它们复制得很好(您可以在资源管理器中复制它们)。
我的问题基本上是:我如何告诉系统:尽可能复制source
到;destination
如果没有,不要打破destination
?
感谢您的帮助,这件事让我发疯了。