C# · 12月 30, 2021

c# – 当使用Directory.Move时,该文件已存在时无法创建文件

我正在尝试将目录从一个位置移动到同一个驱动器上的另一个位置.我收到“无法在该文件已存在时创建文件”错误.以下是我的代码

有人可以建议吗?

string sourcedirectory = @”F:\source”; string destinationdirectory = @”F:\destination”; try { if (Directory.Exists(sourcedirectory)) { if (Directory.Exists(destinationdirectory)) { Directory.Move(sourcedirectory,destinationdirectory); } else { Directory.CreateDirectory(destinationdirectory); Directory.Move(sourcedirectory,destinationdirectory); } } } catch (Exception ex) { log(ex.message); }解决方法 由于两个以前的答案都指出,目的地目录不能存在.在您的代码中,您创建的目录不存在,然后尝试移动您的目录,移动方法将为您创建目录.如果目录已存在,您将需要删除它或移动它.

这样的事情

class Program{ static void Main(string[] args) { string sourcedirectory = @”C:\source”; string destinationdirectory = @”C:\destination”; string backupdirectory = @”C:\Backup”; try { if (Directory.Exists(sourcedirectory)) { if (Directory.Exists(destinationdirectory)) { //Directory.Delete(destinationdirectory); Directory.Move(destinationdirectory,backupdirectory + DateTime.Now.ToString(“_MMMdd_yyyy_HHmmss”)); Directory.Move(sourcedirectory,destinationdirectory); } else { Directory.Move(sourcedirectory,destinationdirectory); } } } catch (Exception ex) { Console.WriteLine(ex.Message); } Console.ReadLine(); }}