.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(); } } }
