c# 封装的文件夹操作类之复制文件夹

c#  封装的文件夹操作类之复制文件夹

一.复制文件夹原理:

1.递归遍历文件夹

2.复制文件

二.FolderHelper.cs

复制代码
 1  /// <summary>
 2     /// 文件夹操作类
 3     /// </summary>
 4     public static class FolderHelper
 5     {
 6         /// <summary>
 7         /// 复制文件夹
 8         /// </summary>
 9         /// <param name="sourceFolderName">源文件夹目录</param>
10         /// <param name="destFolderName">目标文件夹目录</param>
11         public static void Copy(string sourceFolderName, string destFolderName)
12         {
13             Copy(sourceFolderName, destFolderName, false);
14         }
15 
16         /// <summary>
17         /// 复制文件夹
18         /// </summary>
19         /// <param name="sourceFolderName">源文件夹目录</param>
20         /// <param name="destFolderName">目标文件夹目录</param>
21         /// <param name="overwrite">允许覆盖文件</param>
22         public static void Copy(string sourceFolderName, string destFolderName, bool overwrite)
23         {
24             var sourceFilesPath = Directory.GetFileSystemEntries(sourceFolderName);
25 
26             for (int i = 0; i < sourceFilesPath.Length; i++)
27             {
28                 var sourceFilePath = sourceFilesPath[i];
29                 var directoryName = Path.GetDirectoryName(sourceFilePath);
30                 var forlders = directoryName.Split('\\');
31                 var lastDirectory = forlders[forlders.Length - 1];
32                 var dest = Path.Combine(destFolderName, lastDirectory);
33 
34                 if (File.Exists(sourceFilePath))
35                 {
36                     var sourceFileName = Path.GetFileName(sourceFilePath);
37                     if (!Directory.Exists(dest))
38                     {
39                         Directory.CreateDirectory(dest);
40                     }
41                     File.Copy(sourceFilePath, Path.Combine(dest, sourceFileName), overwrite);
42                 }
43                 else
44                 {
45                     Copy(sourceFilePath, dest, overwrite);
46                 }
47             }
48         }
49     }
复制代码

 

posted @   土豆哥  阅读(4108)  评论(0编辑  收藏  举报
编辑推荐:
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
点击右上角即可分享
微信分享提示