java实现文件夹的复制和文件的复制
2016-07-08 21:01
447 查看
//复制到特定目录下 public void copyFiles(File rootFile,File copyFile){ //如果目标目录是一个文件,则抛出不可复制到文件的异常 if(copyFile.isFile()){ throw new RuntimeException("不能将一个文件夹复制到一个文件当中"); } //因为是复制所以,要保证复制后的文件夹和原文件夹的名字包括里面的子文件夹,子文件名字都保持一致 String rootPath=rootFile.getAbsolutePath().substring(rootFile.getAbsolutePath().lastIndexOf('\\')); //因此,新文件创建的时候,直接截取原文件的路径获取文件名字整合到目标文件夹的后面形成目标文件的路径 String path=copyFile.getAbsolutePath()+rootPath; copyFile=new File(path); //如果复制的当前元素是文件,用流操作进行复制 if(rootFile.isFile()){ try { FileInputStream fis=new FileInputStream(rootFile); FileOutputStream fos=new FileOutputStream(copyFile); byte[] b=new byte[1024]; int code; code = fis.read(b); while(code!=-1){ fos.write(b, 0, code); code=fis.read(b); } fos.flush(); } catch (FileNotFoundException e) { // TODO Auto-generated catch block e.printStackTrace(); }catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } }else{//如果当前file对象指代的是文件夹,那么直接创建一个空文件夹即可 copyFile.mkdir(); File[] files=rootFile.listFiles(); //如果文件夹下面再有子元素,则递归循环复制 if(files.length!=0){ for(File f:files){ this.copyFiles(f, copyFile); } } } }
测试用例:
File f1=new File("F:\\测试\\a\\haha.txt");//构建原文件对象 //或者构建文件夹对象,同样可以实现文件夹的复制 File f2=new File("E:\\练习");//目标文件夹 CopyFile cf=new CopyFile(); cf.copyFiles(f1,f2);
相关文章推荐
- java对世界各个时区(TimeZone)的通用转换处理方法(转载)
- java-注解annotation
- java-模拟tomcat服务器
- java-用HttpURLConnection发送Http请求.
- java-WEB中的监听器Lisener
- Android IPC进程间通讯机制
- Android Native 绘图方法
- Android java 与 javascript互访(相互调用)的方法例子
- 介绍一款信息管理系统的开源框架---jeecg
- 聚类算法之kmeans算法java版本
- java实现 PageRank算法
- PropertyChangeListener简单理解
- c++11 + SDL2 + ffmpeg +OpenAL + java = Android播放器
- 插入排序
- 冒泡排序
- 堆排序
- 快速排序
- 二叉查找树