java 文件、文件夹 递归复制、移动
来源:互联网 发布:gossip协议《算法》 编辑:程序博客网 时间:2024/06/08 20:00
package com.mayflay.utils;import java.io.*;/** * 文件、文件夹 递归复制、移动 * @Author: mihuajun 【kobe96688@126.com】 * @Date: 12/9/2016 10:22 AM */public class FileUtils { public static void copy(File sourceFileOrDir,File targetDir) { verifyExists(sourceFileOrDir); execute(sourceFileOrDir,targetDir,false); } public static void move(File sourceFileOrDir,File targetDir) { verifyExists(sourceFileOrDir); execute(sourceFileOrDir,targetDir,true); } public static void copyChild(File sourceDir,File targetDir) { verifyExists(sourceDir); verifyDir(sourceDir); for(File item : sourceDir.listFiles()){ execute(item,targetDir,false); } } public static void moveChild(File sourceDir,File targetDir){ verifyExists(sourceDir); verifyDir(sourceDir); for(File item : sourceDir.listFiles()){ execute(item,targetDir,true); } } private static void execute(File sourceFileOrDir,File targetDir,Boolean isRemove) { if(!targetDir.exists())targetDir.mkdirs(); File newTargetFile = new File(targetDir.getAbsolutePath()+File.separator+sourceFileOrDir.getName()); if(sourceFileOrDir.isDirectory()){ newTargetFile.mkdir(); for(File item : sourceFileOrDir.listFiles()){ FileUtils.execute(item,newTargetFile,isRemove); } if(isRemove){ sourceFileOrDir.delete(); } return; } FileInputStream fileInputStream = null; FileOutputStream fileOutputStream = null; try { fileInputStream = new FileInputStream(sourceFileOrDir); fileOutputStream = new FileOutputStream(newTargetFile); byte[] buff = new byte[1000]; int len = 0; while((len = fileInputStream.read(buff))!=-1){ fileOutputStream.write(buff,0,len); } fileInputStream.close(); fileOutputStream.close(); if(isRemove){ sourceFileOrDir.delete(); } }catch (Exception e){ e.printStackTrace(); }finally { if(fileInputStream != null) try {fileInputStream.close();} catch (IOException e) {e.printStackTrace();} if(fileOutputStream != null)try {fileOutputStream.close();} catch (IOException e) {e.printStackTrace();} } } private static void verifyExists(File file){ if(!file.exists()){ throw new RuntimeException(file.getAbsolutePath()+" is not exists"); } } private static void verifyDir(File dir){ if(!dir.isDirectory()){ throw new RuntimeException(dir.getAbsolutePath()+" is not directory"); } }}
0 0
- java 文件、文件夹 递归复制、移动
- java递归复制文件及文件夹
- java递归方法复制文件和文件夹
- java实现文件/文件夹复制、删除、移动
- Java 文件文件夹增删移动复制操作
- java复制文件删除文件 移动文件 复制文件夹等
- Java中实现复制文件到文件,复制文件到文件夹,复制文件夹到文件,删除文件,删除文件夹,移动文件,移动文件夹的工具类
- 使用java递归实现文件及文件夹的复制
- java递归遍历复制文件夹
- java文件和文件夹复制、删除、移动操作
- java文件和文件夹复制、删除、移动操作
- java文件和文件夹复制、删除、移动操作
- java文件和文件夹复制、删除、移动操作
- java文件和文件夹复制、删除、移动操作
- java 文件及文件夹操作(复制、移动、删除)
- java文件和文件夹复制、删除、移动操作
- java 不保留移动文件renameTo,递归遍历子文件夹
- JAVA 创建文件和文件夹,删除文件和文件夹,复制文件和文件夹,移动文件和文件夹的实用工具类
- 文章标题
- android IntentService分析
- 1209日常小结
- 按键70秒,Root轻松得:Linux惊现高危漏洞
- socket编程之bind()函数
- java 文件、文件夹 递归复制、移动
- 4-2-Two Stacks In One Array
- R语言-数据预处理的一些实用(万能)办法:缺失值、数据重复、共线性等等的处理
- 函数,函数指针
- acm蛇形填数
- Sorry, Ubuntu xx.xx Has Experienced An Internal Error ubuntu14.04更新不了问题解决
- Linux 五个最牛视频编辑软件
- 正则表达式
- Java NIO详解(一): FileChannel