.NET Core中复制源文件夹下的所有内容到新文件夹
.NET Core中没有原生的复制文件夹方法,我们可以自己写个:
新建一个.NET Core控制台项目,示例代码如下:
using System; using System.IO; namespace CoreIO { class Program { /// <summary> /// 复制源文件夹下的所有内容到新文件夹 /// </summary> /// <param name="sources">源文件夹路径</param> /// <param name="dest">新文件夹路径</param> static void CopyFolder(string sources, string dest) { DirectoryInfo dinfo = new DirectoryInfo(sources); //注,这里面传的是路径,并不是文件,所以不能包含带后缀的文件 foreach (FileSystemInfo f in dinfo.GetFileSystemInfos()) { //目标路径destName = 新文件夹路径 + 源文件夹下的子文件(或文件夹)名字 //Path.Combine(string a ,string b) 为合并两个字符串 string destName = Path.Combine(dest, f.Name); if (f is FileInfo) { //如果是文件就复制 File.Copy(f.FullName, destName, true);//true代表可以覆盖同名文件 } else { //如果是文件夹就创建文件夹,然后递归复制 Directory.CreateDirectory(destName); CopyFolder(f.FullName, destName); } } } static void Main(string[] args) { string sourceFolder = @"F:\xBackup"; string destFolder = @"F:\DemoFolder"; CopyFolder(sourceFolder, destFolder); Console.WriteLine("Press any key to end..."); Console.ReadKey(); } } }