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

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM