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);
}
}
}
}
博客展示了一段C#代码,定义了一个名为App的类,其中包含两个CopyFiles方法。一个用于复制指定目录的所有文件(不包含子目录),另一个可选择是否包含子目录。方法能根据参数决定是否覆盖同名文件,实现文件复制功能。
1294

被折叠的 条评论
为什么被折叠?



