【C#】【System.IO】关于拷贝文件夹以及(Directory和DirectoryInfo、File和FileInfo)的区别
1.【C#】【串口通信(Serial Port)】【实例】建议串口调试WinForm桌面应用实例——已实现功能<存在未知BUG>2.【C#】【命名空间(namespace)】.NET6.0后支持的顶级语句使用问题3.【C#】【Equals和ReferenceEquals】关于对象和值的问题4.【C#】【IO】【实例】统计多个文件夹下的图片5.【C#】【字符串内插】关于$" "(字符串内插构造格式化字符串)的使用6.【C#】【IO】【实例】接上一个统计的新功能7.【C#】【DateTime】获取当前时间的前一天或者后一天方法学习
8.【C#】【System.IO】关于拷贝文件夹以及(Directory和DirectoryInfo、File和FileInfo)的区别
9.【C#】【System.Linq】一些便捷的数据处理方法(Range、Select)10.【C#】【IO】【Threading】【实例】工作报表前的本地数据聚合操作11.【C#】【WinForm】MDI窗体本次问题是想要拷贝文件夹,但是找了一圈发现只有File有Copy或者FileInfo的CopyTo,并没有Directory的拷贝操作方法。
针对C#中拷贝文件夹的方法就是先生成一个目标文件夹(destinationFolder)再将(soursefolder)中的文件依次拷贝到目标文件夹中,C#并没有提供封装好的方法将文件夹中的文件及其子文件夹整个的拷贝过去。
下述是CopyFold代码:
1 using System.IO; 2 3 class Program 4 { 5 static void Main() 6 { 7 string sourceFolder = @""; 8 string destinationFolder = @""; 9 10 CopyFolder(sourceFolder, destinationFolder); 11 } 12 13 static void CopyFolder(string sourceFolder, string destinationFolder) 14 { 15 DirectoryInfo dir = new DirectoryInfo(sourceFolder); 16 17 Directory.CreateDirectory(destinationFolder); 18 19 FileInfo[] files = dir.GetFiles(); 20 21 foreach (FileInfo file in files) 22 { 23 string destinationFile = Path.Combine(destinationFolder, file.Name); 24 file.CopyTo(destinationFile, false); 25 } 26 27 DirectoryInfo[] subDirs = dir.GetDirectories(); 28 29 foreach (DirectoryInfo subdir in subDirs) 30 { 31 string destinationSubDir = Path.Combine(destinationFolder, subdir.Name); 32 CopyFolder(subdir.FullName, destinationSubDir); 33 } 34 } 35 }
但是上述代码有一个问题,如果有多个sourcefolder和多个JPG或者TXT文件在一个父级文件夹下,将sourcefolder的路径换成父级路径后,多出的JPG和TXT也会同时被拷贝,所以需要对上述代码做出一些更改来达到只拷贝指定的文件夹。
拓展:
标题中的Directory和DirectoryInfo、File和FileInfo是没有什么区别的,带有Info字样的提供了更加灵活的实例方法,请注意,!!实例 方法!!!,在为查找资料之前我是将DirectoryInfo类直接和Directory类相同的方法带调用用法,这是错误的。
Directory和File是静态方法,所以可以直接File.Copy()、Directory.GetDirectories()
而DirectoryInfo和FileInfo是非静态的,必须实例化后才能调用其中的方法,如DirectoryInfo.GetDirectories()是错误的!new DirectoryInfo().GetDirectories()才可以。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· winform 绘制太阳,地球,月球 运作规律
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)