从以下文档File.Move
:
请注意,如果您尝试通过将同名文件移动到该目录来替换文件,则会收到 IOException。您不能使用 Move 方法覆盖现有文件。
简而言之,您不能覆盖 on Move
,因此为了便于在 Move 上覆盖,我通过执行 aFile.Copy
后跟 a来模仿行为File.Delete
。就像是:
if (File.Exists(dstFileName))
{
// System.IO.File.Move cannot be used to overwrite existing files, so we're going
// to simulate that behavior with a Copy & Delete.
File.Copy(procContext.FileName, dstFileName);
File.Delete(procContext.FileName);
}
else
File.Move(procContext.FileName, dstFileName);
我的问题是:是否有任何我需要防范的情况可能导致源文件在没有先被成功复制的情况下被删除?
从阅读文档中我的理解是,因为File.Copy
它不返回任何东西,它应该在任何情况下都没有成功抛出异常。有没有人遇到过不正确的情况?