复制指定源位置的多级文件夹下所有文件到指定目标位置
2016-05-02 16:05
501 查看
目标:复制指定源位置的所有文件、文件夹到指定的目标位置
分析:
1.如果指定源位置是文件,则直接复制文件到目标位置。
2.如果指定源位置是文件夹,则首先在目标文件夹下创建与源位置同名文件夹。
3.遍历源位置文件夹下所有的文件,修改源位置为当前遍历项的文件位置,目标位置为刚刚上部创建的文件夹位置。
4.递归调用,回到1.
编程实现
至此,多级文件的复制工作就完成了~
分析:
1.如果指定源位置是文件,则直接复制文件到目标位置。
2.如果指定源位置是文件夹,则首先在目标文件夹下创建与源位置同名文件夹。
3.遍历源位置文件夹下所有的文件,修改源位置为当前遍历项的文件位置,目标位置为刚刚上部创建的文件夹位置。
4.递归调用,回到1.
编程实现
package cn.hafiz.www; import java.io.BufferedInputStream; import java.io.BufferedOutputStream; import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.IOException; public class CopyFolder { public static void main(String[] args) throws IOException { File srcFile = new File("G:\\hafiz"); File desFile = new File("E:\\"); copyFolder(srcFile, desFile); } private static void copyFolder(File srcFile, File desFile) throws IOException { if(srcFile.isDirectory()) { //是文件夹,首先在目标位置创建同名文件夹,然后遍历文件夹下的文件,进行递归调用copyFolder函数 File newFolder = new File(desFile, srcFile.getName()); newFolder.mkdir(); File[] fileArray = srcFile.listFiles(); for(File file : fileArray) { copyFolder(file, newFolder); } }else{ //是文件,直接copy到目标文件夹 File newFile = new File(desFile, srcFile.getName()); copyFile(srcFile, newFile); } } private static void copyFile(File srcFile, File newFile) throws IOException { //复制文件到指定位置 BufferedInputStream bis = new BufferedInputStream(new FileInputStream(srcFile)); BufferedOutputStream bos = new BufferedOutputStream(new FileOutputStream(newFile)); byte[] b = new byte[1024]; Integer len = 0; while((len = bis.read(b)) != -1) { bos.write(b, 0, len); } bis.close(); bos.close(); } }
至此,多级文件的复制工作就完成了~
相关文章推荐
- css整体缩放布局
- DPM恢复Exchange 2013单个邮箱
- pureftp部署和优化
- DPM恢复Exchange 2013单个邮箱
- IO流中以字符流读取和写入。
- Python yield and generator
- 初步理解java类加载器
- Codeforces Round #228 (Div. 1) C. Fox and Card Game 博弈
- c++和G++的区别
- 引用类型和基类型
- DP————1015
- 浅谈Java垃圾回收机制
- ACM 超级台阶
- 异常处理
- Linux C内存模型及管理
- zoj3861——Valid Pattern Lock(全排列)
- 专题三 第八题
- 前端学习总结(十六)前端工具之bower,glup,less总结
- Android Studio多渠道批量打包及代码混淆
- MySQL和Lucene索引对比分析