文件与文件夹的完全复制
文件与文件夹的完全复制,包扩子目录与子目录的文件
static void Main(string[] args)
{
string dir1 = @"E:MyTest2.NETFileAndDirCopyfile1";
string dir2 = @"E:MyTest2.NETFileAndDirCopyfile2";
FileAndDirFullCopy(dir1, dir2);
Console.ReadKey();
}
/// <summary>
/// Full copies of files and directories
/// </summary>
/// <param name="sourceDir">source Dir.</param>
/// <param name="destinationDir">destination Dir.</param>
public static void FileAndDirFullCopy(string sourceDir, string destinationDir)
{
DirectoryInfo source = new DirectoryInfo(sourceDir);
//Files
FileInfo[] files = source.GetFiles();
foreach (var file in files)
{
string copyToFile = Path.Combine(destinationDir, file.Name);
if (!File.Exists(copyToFile))
{
file.CopyTo(copyToFile);
Console.WriteLine($"文件:({file.FullName})被复制到({copyToFile}).
");
}
Console.WriteLine($"文件:({file.FullName})复制结束.");
}
//subfolders and subfiles
DirectoryInfo[] subDirs = source.GetDirectories();
foreach (var subDir in subDirs)
{
//Directories
string copyToSubDir = Path.Combine(destinationDir, subDir.Name);
if (!Directory.Exists(copyToSubDir))
{
Console.WriteLine($"目录:{subDir.FullName},被创建.
");
Directory.CreateDirectory(copyToSubDir);
}
//subfiles
FileInfo[] subfiles = subDir.GetFiles();
foreach (var subfile in subfiles)
{
string copyToSubFile = Path.Combine(copyToSubDir, subfile.Name);
if (!File.Exists(copyToSubFile))
{
subfile.CopyTo(copyToSubFile);
Console.WriteLine($"文件:({subfile.FullName})被复制到({copyToSubFile}).
");
}
}
//subfolders
FileAndDirFullCopy(subDir.FullName, copyToSubDir);
Console.WriteLine($"目录:({subDir.FullName})复制结束.");
Console.WriteLine();
}
}