48 lines
1.4 KiB
C#
48 lines
1.4 KiB
C#
using System;
|
|
using System.IO;
|
|
using System.Collections.Generic;
|
|
using System.Linq;
|
|
using System.Text;
|
|
using System.Threading.Tasks;
|
|
|
|
namespace Big.Lito.Desktop
|
|
{
|
|
class CopyDir
|
|
{
|
|
public static void Copy(string sourceDirectory, string targetDirectory)
|
|
{
|
|
DirectoryInfo diSource = new DirectoryInfo(sourceDirectory);
|
|
DirectoryInfo diTarget = new DirectoryInfo(targetDirectory);
|
|
|
|
CopyAll(diSource, diTarget);
|
|
}
|
|
|
|
public static void CopyAll(DirectoryInfo source, DirectoryInfo target)
|
|
{
|
|
Directory.CreateDirectory(target.FullName);
|
|
|
|
// Copy each file into the new directory.
|
|
foreach (FileInfo fi in source.GetFiles())
|
|
{
|
|
Console.WriteLine(@"Copying {0}\{1}", target.FullName, fi.Name);
|
|
fi.CopyTo(Path.Combine(target.FullName, fi.Name), true);
|
|
}
|
|
|
|
// Copy each subdirectory using recursion.
|
|
foreach (DirectoryInfo diSourceSubDir in source.GetDirectories())
|
|
{
|
|
DirectoryInfo nextTargetSubDir =
|
|
target.CreateSubdirectory(diSourceSubDir.Name);
|
|
CopyAll(diSourceSubDir, nextTargetSubDir);
|
|
}
|
|
}
|
|
|
|
public static void Delete(string targetDirectory)
|
|
{
|
|
DirectoryInfo diTarget = new DirectoryInfo(targetDirectory);
|
|
diTarget.Delete(true);
|
|
}
|
|
|
|
}
|
|
}
|