C#移动文件夹中的所有文件夹与文件到另一个文件夹

来源:互联网 发布:win10平板手势软件 编辑:程序博客网 时间:2024/05/30 20:07
/// <summary>        /// 移动文件夹中的所有文件夹与文件到另一个文件夹  //转载请注明来自 http://www.shang11.com        /// </summary>        /// <param name="sourcePath">源文件夹</param>        /// <param name="destPath">目标文件夹</param>        public static void MoveFolder(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) });                    //覆盖模式                    if (File.Exists(destFile))                    {                        File.Delete(destFile);                    }                    File.Move(c, destFile);                });                //获得源文件下所有目录文件                List<string> folders = new List<string>(Directory.GetDirectories(sourcePath));                folders.ForEach(c =>                {                    string destDir = Path.Combine(new string[] { destPath, Path.GetFileName(c) });                    //Directory.Move必须要在同一个根目录下移动才有效,不能在不同卷中移动。                    //Directory.Move(c, destDir);                    //采用递归的方法实现                    MoveFolder(c, destDir);                });            }            else            {                throw new DirectoryNotFoundException("源目录不存在!");            }        }

2 0
原创粉丝点击