class App
{
/// <summary>
/// 复制指定目录的所有文件,不包含子目录
/// </summary>
/// <param name="sourceDir">原始目录</param>
/// <param name="targetDir">目标目录</param>
/// <param name="overWrite">如果为true,表示覆盖同名文件,否则不覆盖</param>
public static void CopyFiles(string sourceDir, string targetDir, bool overWrite)
{
CopyFiles(sourceDir, targetDir, overWrite, false);
}
/// <summary>
/// 复制指定目录的所有文件
/// </summary>
/// <param name="sourceDir">原始目录</param>
/// <param name="targetDir">目标目录</param>
/// <param name="overWrite">如果为true,覆盖同名文件,否则不覆盖</param>
/// <param name="copyDir">如果为true,包含目录,否则不包含</param>
public static void CopyFiles(string sourceDir, string targetDir, bool overWrite, bool copyDir)
{
string[] fileEntries = Directory.GetFiles(sourceDir);
if (overWrite)
{
foreach (string fileName in fileEntries)
{
File.Copy(fileName, targetDir + fileName.Substring(fileName.LastIndexOf("//")), true);
//Console.WriteLine(fileName+"-->"+targetDir+fileName.Substring(fileName.LastIndexOf("//")));
}
}
else
{
foreach (string fileName in fileEntries)
{
if (!File.Exists(targetDir + fileName.Substring(fileName.LastIndexOf("//"))))
{
File.Copy(fileName, targetDir + fileName.Substring(fileName.LastIndexOf("//")));
//Console.WriteLine(fileName+"-->"+targetDir+fileName.Substring(fileName.LastIndexOf("//")));
}
}
}
if (copyDir)
{
foreach (string subDir in Directory.GetDirectories(sourceDir))
{
string newSubDir = targetDir + subDir.Substring(subDir.LastIndexOf("//"));
if (!Directory.Exists(newSubDir))
Directory.CreateDirectory(newSubDir);
CopyFiles(subDir, newSubDir, overWrite, copyDir);
}
}
}
}
{
/// <summary>
/// 复制指定目录的所有文件,不包含子目录
/// </summary>
/// <param name="sourceDir">原始目录</param>
/// <param name="targetDir">目标目录</param>
/// <param name="overWrite">如果为true,表示覆盖同名文件,否则不覆盖</param>
public static void CopyFiles(string sourceDir, string targetDir, bool overWrite)
{
CopyFiles(sourceDir, targetDir, overWrite, false);
}
/// <summary>
/// 复制指定目录的所有文件
/// </summary>
/// <param name="sourceDir">原始目录</param>
/// <param name="targetDir">目标目录</param>
/// <param name="overWrite">如果为true,覆盖同名文件,否则不覆盖</param>
/// <param name="copyDir">如果为true,包含目录,否则不包含</param>
public static void CopyFiles(string sourceDir, string targetDir, bool overWrite, bool copyDir)
{
string[] fileEntries = Directory.GetFiles(sourceDir);
if (overWrite)
{
foreach (string fileName in fileEntries)
{
File.Copy(fileName, targetDir + fileName.Substring(fileName.LastIndexOf("//")), true);
//Console.WriteLine(fileName+"-->"+targetDir+fileName.Substring(fileName.LastIndexOf("//")));
}
}
else
{
foreach (string fileName in fileEntries)
{
if (!File.Exists(targetDir + fileName.Substring(fileName.LastIndexOf("//"))))
{
File.Copy(fileName, targetDir + fileName.Substring(fileName.LastIndexOf("//")));
//Console.WriteLine(fileName+"-->"+targetDir+fileName.Substring(fileName.LastIndexOf("//")));
}
}
}
if (copyDir)
{
foreach (string subDir in Directory.GetDirectories(sourceDir))
{
string newSubDir = targetDir + subDir.Substring(subDir.LastIndexOf("//"));
if (!Directory.Exists(newSubDir))
Directory.CreateDirectory(newSubDir);
CopyFiles(subDir, newSubDir, overWrite, copyDir);
}
}
}
}