复制指定源位置的多级文件夹下所有文件到指定目标位置
目标:复制指定源位置的所有文件、文件夹到指定的目标位置
分析:
1.如果指定源位置是文件,则直接复制文件到目标位置。
2.如果指定源位置是文件夹,则首先在目标文件夹下创建与源位置同名文件夹。
3.遍历源位置文件夹下所有的文件,修改源位置为当前遍历项的文件位置,目标位置为刚刚上部创建的文件夹位置。
4.递归调用,回到1.
编程实现
复制 1 package cn.hafiz.www; 2 3 import java.io.BufferedInputStream; 4 import java.io.BufferedOutputStream; 5 import java.io.File; 6 import java.io.FileInputStream; 7 import java.io.FileOutputStream; 8 import java.io.IOException; 9 10 public class CopyFolder { 11 public static void main(String[] args) throws IOException { 12 File srcFile = new File("G:\\hafiz"); 13 File desFile = new File("E:\\"); 14 copyFolder(srcFile, desFile); 15 } 16 17 private static void copyFolder(File srcFile, File desFile) throws IOException { 18 if(srcFile.isDirectory()) { 19 //是文件夹,首先在目标位置创建同名文件夹,然后遍历文件夹下的文件,进行递归调用copyFolder函数 20 File newFolder = new File(desFile, srcFile.getName()); 21 newFolder.mkdir(); 22 File[] fileArray = srcFile.listFiles(); 23 for(File file : fileArray) { 24 copyFolder(file, newFolder); 25 } 26 }else{ 27 //是文件,直接copy到目标文件夹 28 File newFile = new File(desFile, srcFile.getName()); 29 copyFile(srcFile, newFile); 30 } 31 } 32 33 private static void copyFile(File srcFile, File newFile) throws IOException { 34 //复制文件到指定位置 35 BufferedInputStream bis = new BufferedInputStream(new FileInputStream(srcFile)); 36 BufferedOutputStream bos = new BufferedOutputStream(new FileOutputStream(newFile)); 37 byte[] b = new byte[1024]; 38 Integer len = 0; 39 while((len = bis.read(b)) != -1) { 40 bos.write(b, 0, len); 41 } 42 bis.close(); 43 bos.close(); 44 } 45 }
至此,多级文件的复制工作就完成了~
感谢您花时间阅读此篇文章,如果您觉得这篇文章你学到了东西也是为了犒劳下博主的码字不易不妨打赏一下吧,让博主能喝上一杯咖啡,在此谢过了!
如果您觉得阅读本文对您有帮助,请点一下左下角“推荐”按钮,您的将是我最大的写作动力!另外您也可以选择【关注我】,可以很方便找到我!
本文版权归作者和博客园共有,来源网址:http://www.cnblogs.com/hafiz 欢迎各位转载,但是未经作者本人同意,转载文章之后必须在文章页面明显位置给出作者和原文连接,否则保留追究法律责任的权利!


【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· Ollama——大语言模型本地部署的极速利器
· DeepSeek如何颠覆传统软件测试?测试工程师会被淘汰吗?