File.Move在前面有File.Delete时失败

Pie*_*ant 12 c# io

我们有一个MoveFile方法,通常可以工作,但在客户站点仍然失败.

if (File.Exists(target))
{
    File.Delete(target);
}

File.Move(source, target);
Run Code Online (Sandbox Code Playgroud)

呼叫File.Move失败反复失败

System.IO.IOException: Cannot create a file when that file already exists.

   at System.IO.__Error.WinIOError(Int32 errorCode, String maybeFullPath)
   at System.IO.__Error.WinIOError()
   at System.IO.File.Move(String sourceFileName, String destFileName)
Run Code Online (Sandbox Code Playgroud)

我们有围绕调用该方法的错误处理,但我们无法弄清楚为什么File.Delete不工作并且没有抛出任何东西.

我们虽然关于文件许可,但是那File.Delete会扔掉一个UnauthorizedAccessException.

File.Move在删除该特定文件之前,还有其他原因导致"文件已存在"失败吗?

Mar*_*rcE 12

你能扭转逻辑吗?

File.Copy (source, target, true) 
Run Code Online (Sandbox Code Playgroud)

然后覆盖目标

File.Delete(source)
Run Code Online (Sandbox Code Playgroud)