java遍历文件夹并复制文件到指定目录
2012-05-21 21:51
756 查看
转载:http://www.open-open.com/home/space-2869-do-blog-id-5781.html
package com.czp; import java.io.BufferedInputStream; import java.io.BufferedOutputStream; import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.IOException; import java.util.Scanner; import javax.swing.JTextArea; public class CopyFolder { //允许复制的文件类型 public static String[] filterFile = {".java",".xml",".xdl",".properties",".sql",".jupiter",".wsdl"}; private long total = 0l; //private static Pattern pattern = Pattern.compile("[A-z][:]/[A-z]*/OMC[0-9A-z]{0,}"); public static void main(String[] args) throws Exception { Scanner scanner = new Scanner(System.in); System.out.println("Enter src folder:"); String srcStr = scanner.next(); String destStr; System.out.println("Now enter dest folder:"); destStr = scanner.next(); String answer = null; do{ File src = new File(srcStr); File des = new File(destStr); new CopyFolder().copyFolder(src, des,new String[]{".java",".xml",".xdl",".properties",".sql",".jupiter"},null); System.out.println("Continue ?y or n"); answer = scanner.next(); }while(answer.equalsIgnoreCase("Y")); scanner.close(); } /** * * @param folder * @param filterFile * @param status * @throws Exception */ public void copyFolder(File srcFolder,File destFolder,String[] filterFile, JTextArea status) throws Exception { File[] files = srcFolder.listFiles(); for (File file : files) { if(file.isFile()) { String pathname = destFolder+File.separator+file.getName(); for (String suff : filterFile) { if(pathname.endsWith(suff)) { File dest = new File(pathname); File destPar = dest.getParentFile(); destPar.mkdirs(); if(!dest.exists()) { dest.createNewFile(); } copyFile(file, dest,status); } } }else{ copyFolder(file, destFolder, filterFile,status); } } } /*** * copy file * * @param src * @param dest * @param status * @throws IOException */ private void copyFile(File src, File dest, JTextArea status) throws Exception { BufferedInputStream reader = null; BufferedOutputStream writer = null; try { reader = new BufferedInputStream(new FileInputStream(src)); writer = new BufferedOutputStream(new FileOutputStream(dest)); byte[] buff = new byte[reader.available()]; while ((reader.read(buff)) != -1) { writer.write(buff); } total++; String temp = "\ncopy:\n"+src+"\tsize:"+src.length()+"\nto:\n"+dest+"\tsize:"+dest.length()+"\n complate\n totoal:"+total; System.out.println(temp); //status.append(temp); } catch (Exception e) { throw e; } finally { writer.flush(); writer.close(); reader.close(); } } }
相关文章推荐
- java遍历文件夹并复制文件到指定目录
- Java学习之复制文件目录到指定文件夹
- java遍历文件夹支付至文件到指定目录
- Java中如何利用File类递归的遍历指定目录中的所有文件和文件夹
- Java实现文件或文件夹的复制到指定目录
- java 复制文件夹下所有文件到指定的文件夹,不改变目录结构
- java 遍历指定目录下的文件夹并查找包含指定关键字的文件
- Java实现文件或文件夹的复制到指定目录实例
- java复制文件夹下全部的文件到指定目录
- Java遍历列出某一目录下的文件及文件夹,寻找某一指定文件
- sql 遍历指定目录下的文件夹和文件
- 遍历文件Java中遍历出指定目录中的所有文件
- Java新建目录、新建文件、删除文件、删除文件夹、删除文件夹里面的所有文件、复制整个文件夹内容
- linux复制指定目录下的全部文件到另一个目录中,linux cp 文件夹
- 根据提供的文件名文本,查找指定目录下的该文件,找到后复制到指定文件夹--bash
- Java遍历文件夹下所有文件并替换指定字符串
- java 读取目录及子目录下指定文件名的路径 并放到一个List数组里面返回遍历和写到文件里
- Java中遍历出指定目录中的所有文件
- java:File类中对文件或目录进行操作的常用方法以及遍历文件夹下面的文件
- c#如何实现对指定路径文件夹的遍历并复制里面所有文件到指定路径