加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

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

发布时间:2020-12-15 06:54:39 所属栏目:百科 来源:网络整理
导读:我正在尝试将目录从一个位置移动到同一个驱动器上的另一个位置.我收到“无法在该文件已存在时创建文件”错误.以下是我的代码 有人可以建议吗? string sourcedirectory = @"F:source"; string destinationdirectory = @"F:destination"; try { if (Directo
我正在尝试将目录从一个位置移动到同一个驱动器上的另一个位置.我收到“无法在该文件已存在时创建文件”错误.以下是我的代码

有人可以建议吗?

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();
    }
}

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读