m0_59894124 2021-07-10 16:37 采纳率: 67.4%
浏览 36
已采纳

想要实现将文件夹中的内容复制到另一个文件夹,运行会在遍历时出现问题

    private void button1_Click(object sender, EventArgs e)
      {
          CopyDirectory(null,null,true);
      }
    public static void CopyDirectory(string SourcePath, string TargetPath, bool Overwrite)
    {
        // 如果源目录不存在,则退出
        if (!Directory.Exists("C:\\1"))
        {
            return;
        }

        try
        {

            // 如果目标路径不存在,则创建此文件夹
            if (!Directory.Exists("C:\\2"))
            {
                Directory.CreateDirectory("C:\\2");
            }
        }
        catch (Exception ex)
        {
            string ErrInfo = ex.Message;
            return;
        }
        if (Directory.Exists("C:\\2"))
        {

            // 遍历源路径的文件夹,获取文件名(带路径的)
            foreach (string FileName in Directory.GetFiles("C:\\1"))
            {
                try
                {

                    //复制文件
                    File.Copy("FileName", Path.Combine("C:\\2", Path.GetFileName(FileName)), Overwrite);
                }
                catch (Exception ex)
                {
                    string ErrInfo = ex.Message;
                }
            }

            // 子文件夹的遍历

            foreach (string SubPath in Directory.GetDirectories("C:\\1"))
            {

                //复制文件
                CopyDirectory(SubPath, Path.Combine("C:\\2", Path.GetFileName(SubPath)), Overwrite);
            }
        }

    }
  • 写回答

2条回答 默认 最新

  • Aganstrong 2021-07-10 17:19
    关注

    写死的目录不要这样子递归调用

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

问题事件

  • 已采纳回答 7月10日
  • 创建了问题 7月10日