利用递归思想对源文件夹进行遍历,并复制文件到另一个文件夹,如果出现重名则覆盖。
using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threading.Tasks;using System.IO;using System.Windows.Forms;namespace BIMSetupWinForm.SetupHelper{class SetupHelper{#region 变量定义private static string _BentleyORD_Dir = "";private static List<Dictionary<string, string>> _SetupInfo = null;#endregionprivate static void CopyFile(string srcPath, string aimPath){try{// 检查目标目录是否以目录分割字符结束如果不是则添加if (aimPath[aimPath.Length - 1] != Path.DirectorySeparatorChar){aimPath += Path.DirectorySeparatorChar;}// 判断目标目录是否存在如果不存在则新建if (!Directory.Exists(aimPath)){Directory.CreateDirectory(aimPath);}// 得到源目录的文件列表,该里面是包含文件以及目录路径的一个数组// 如果你指向copy目标文件下面的文件而不包含目录请使用下面的方法// string[] fileList = Directory.GetFiles(srcPath);string[] fileList = Directory.GetFileSystemEntries(srcPath);// 遍历所有的文件和目录foreach (string file in fileList){// 先当作目录处理如果存在这个目录就递归Copy该目录下面的文件if (Directory.Exists(file)){CopyFile(file, aimPath + Path.GetFileName(file));}// 否则直接Copy文件else{File.Copy(file, aimPath + Path.GetFileName(file), true);}}}catch (Exception e){throw;}}}}
如果觉得《C#复制文件夹下的所有内容到另一个文件夹》对你有帮助,请点赞、收藏,并留下你的观点哦!