您的位置:首页 > 编程语言 > C#

c# 复制文件夹中的所有文件夹与文件到另一个文件夹

2016-07-01 12:56 525 查看
#region 文件夹操作

        /// <summary> //转载请注明来自 http://www.shang11.com
        /// 复制文件夹中的所有文件夹与文件到另一个文件夹

        /// </summary>

        /// <param name="sourcePath">源文件夹</param>

        /// <param name="destPath">目标文件夹</param>

        public static void CopyFolder(string sourcePath,string destPath)

        {

            if (Directory.Exists(sourcePath))

            {

                if (!Directory.Exists(destPath))

                {

                    //目标目录不存在则创建

                    try

                    {

                        Directory.CreateDirectory(destPath);

                    }

                    catch (Exception ex)

                    {

                        throw new Exception("创建目标目录失败:" + ex.Message);

                    }

                }

                //获得源文件下所有文件

                List<string> files = new List<string>(Directory.GetFiles(sourcePath));                

                files.ForEach(c =>

                {         

                    string destFile = Path.Combine(new string[]{destPath,Path.GetFileName(c)});

                    File.Copy(c, destFile,true);//覆盖模式

                });

                //获得源文件下所有目录文件

                List<string> folders = new List<string>(Directory.GetDirectories(sourcePath));                

                folders.ForEach(c =>

                {

                    string destDir = Path.Combine(new string[] { destPath, Path.GetFileName(c) });

                    //采用递归的方法实现

                    CopyFolder(c, destDir);

                });                

            }

            else

            {

                throw new DirectoryNotFoundException("源目录不存在!");

            }            

        }
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  c#