C#递归复制文件夹

时间:2022-05-15 15:20:33
        /// <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);// 遞歸調用
}
}
}
}