C# 文件或文件夹的复制

图控大叔

    private void button2_Click(object sender, EventArgs e)
        {

            string path1 = @"D:\Config\测试.sol";
            string path2 = @"D:\Config\12";

            CopyFolder(path1, path2);
        }

        /// <summary>
         /// 复制文件夹及文件
       /// </summary>
         /// <param name="sourceFolder">原文件路径,或原文件夹路径</param>
         /// <param name="destFolder">目标文件夹路径</param>
         /// <returns></returns>
         public int CopyFolder(string sourceFolder, string destFolder)
         {
             try
             {
                 //如果目标路径不存在,则创建目标路径
                 if (!System.IO.Directory.Exists(destFolder))
                 {
                     System.IO.Directory.CreateDirectory(destFolder);
                 }

                if (sourceFolder.Contains("."))
                {
                    //文件
                    string name = System.IO.Path.GetFileName(sourceFolder);
                    string dest = System.IO.Path.Combine(destFolder, name);
                    System.IO.File.Copy(sourceFolder, dest);//复制文件

                    return 1;
                }
                else
                {
                    //文件夹
                    //得到原文件根目录下的所有文件夹
                    string[] folders = System.IO.Directory.GetDirectories(sourceFolder);
                    foreach (string folder in folders)
                    {
                        string name = System.IO.Path.GetFileName(folder);
                        string dest = System.IO.Path.Combine(destFolder, name);

                        if (folder == destFolder)
                            continue;
                        CopyFolder(folder, dest);//构建目标路径,递归复制文件
                    }

                    //得到原文件根目录下的所有文件
                    string[] files = System.IO.Directory.GetFiles(sourceFolder);
                    foreach (string file in files)
                    {
                        string name = System.IO.Path.GetFileName(file);
                        string dest = System.IO.Path.Combine(destFolder, name);
                        System.IO.File.Copy(file, dest);//复制文件
                    }

                    return 1;
                }
               
             }
             catch (Exception e)
             {
                 MessageBox.Show(e.Message);
                 return 0;
             }
         
         }
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值