C#递归复制文件夹

        /// <param name="sources">原路徑</param>
        /// <param name="dest">目標路徑</param>        
        private void CopyFile(string sources, string dest)
        {
            if (Directory.Exists(sources))
            {
                DirectoryInfo dinfo = new DirectoryInfo(sources);//   傳的是文件路徑,所以不能包含後綴名
                foreach (FileSystemInfo f in dinfo.GetFileSystemInfos())
                {
                    //  目標路徑destName = 目標文件夾路徑 + 原文件夾下的子路徑(或文件夾)名字  
                    String destName = Path.Combine(dest, f.Name);
                    if (f is FileInfo)//    如果是文件就复制                     
                    {
                        System.IO.File.Copy(f.FullName, destName, true);//  true代表可以覆盖同名文件                     
                    }
                    else//  如果是文件夾就創建文件夾然后复制然后递归复制                     
                    {
                        if (!Directory.Exists(destName))
                        {
                            Directory.CreateDirectory(destName);
                        }
                        CopyFile(f.FullName, destName);//   遞歸調用                     
                    }
                }
            }
        }        

 

你可能感兴趣的:(文件夹)