C# 复制文件夹下面的所有文件到指定路径下

public static void CopyDirectory2(string sourceDirPath, string saveDirPath)
    {
        try
        {
            LogSystem.Log("++++ copy: " + sourceDirPath + " -- to : " + saveDirPath);

            if (string.IsNullOrEmpty(sourceDirPath) || string.IsNullOrEmpty(saveDirPath))
            {
                LogSystem.Log("++++ Path is null.sourceP: " + sourceDirPath + " -- saveDP: " + saveDirPath);
                return;
            }
            sourceDirPath = sourceDirPath.Replace('\\', '/');
            saveDirPath = saveDirPath.Replace('\\', '/');

            //如果指定的存储路径不存在,则创建该存储路径
            if (!Directory.Exists(saveDirPath))
            {
                //创建
                Directory.CreateDirectory(saveDirPath);
            }

            //获取源路径文件的名称
            string[] files = Directory.GetFiles(sourceDirPath);

            //遍历子文件夹的所有文件。
            foreach (string file in files)
            {
                string pFilePath = saveDirPath + "\\" + Path.GetFileName(file);

                pFilePath = pFilePath.Replace('\\', '/');
                string unityFile = file.Replace('\\', '/');

                if (File.Exists(pFilePath))
                {
                    //continue;
                    File.Delete(pFilePath);
                }

                if (!File.Exists(unityFile))
                {
                    LogSystem.Log("++++ " + unityFile + " ; not find");
                    continue;
                }

                File.Copy(unityFile, pFilePath, true);
            }

            string[] dirs = Directory.GetDirectories(sourceDirPath);

            //递归,遍历文件夹
            foreach (string dir in dirs)
            {
                CopyDirectory2(dir, saveDirPath + "\\" + Path.GetFileName(dir));
            }
        }
        catch (Exception ex)
        {

        }
    }

本质就是遍历这个文件夹,然后去目标路径下检测,如果是文件夹,就创建一个文件夹,不是文件夹,就复制文件过去。注意路径中的斜杠。

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值