转载: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遍历文件夹并复制文件到指定目录相关推荐

  1. IO流案例,集合到文件数据排序、复制单级和多级文件夹及复制文件的异常处理

    目录 一.集合到文件数据排序 二.复制单级文件夹 三.复制多级文件夹 四.复制文件的异常处理 基本做法: JDK7版本改进: JDK9版本改进: 一.集合到文件数据排序 需求: 键盘录入5个学生信息( ...

  2. Golang复制文件夹同时复制文件

    请注明出处:https://blog.csdn.net/qq_23179075/article/details/83347698 Golang 复制文件夹,包括文件夹中的文件 /*** 拷贝文件夹,同 ...

  3. JAVA 创建文件和文件夹,删除文件和文件夹,复制文件和文件夹,移动文件和文件夹的实用工具类

    import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io ...

  4. java批量提取文件夹名称_bat 批量提取指定目录下的文件名

    bat 批量提取指定目录下的文件名 下面是批量获取指定目录下的文件名的核心代码 @echo off echo text input set input= set /p input=: echo %in ...

  5. python处理excel系列一之根据文件名从一文件夹批量复制文件到新文件夹并进行处理

    用到的函数主要有shutil.copy().os.path.join().pd.merge(). import os import pandas as pd from pandas import Se ...

  6. C#中如何创建文件夹,复制文件夹,删除文件夹的方法

    转自:http://www.cnblogs.com/pegasus923/archive/2011/01/26/1944838.html http://liuxiaoyong.iteye.com/bl ...

  7. centos服务器之间copy文件夹命令,复制文件与文件夹的CentOS常用命令

    复制文件与文件夹的CentOS常用命令 cp NO1. 复制指定目录的文件到当前目录,并重命名 [[email protected] root]# cp ~/.bashrc bashrc_bak NO ...

  8. linux scp 排除文件夹,scp复制文件时排除指定文件

    1. 前言 本文主要讲解如何在scp复制文件时排除指定文件. 举例: 我需要将所有*.c文件从名为hostA的电脑复制到hostB,包括所有目录.我使用以下scp命令,但不知道如何排除特定的文件(如* ...

  9. cmd xcopy 拷贝文件夹_Xcopy 复制文件和目录,包括子目录。

    Xcopy 复制文件和目录,包括子目录. 语法xcopy Source [Destination] [/w] [/p] [/c] [/v] [/q] [/f] [/l] [/g] [/d[:mm-dd ...

  10. SVN中如何将指定文件或文件夹直接提交到svn指定目录

    一般我们都是按以下步骤操作的: 1.先将那个目录checkout下来 2.将要添加的文件或者文件夹放到这个目录中 3.右击文件执行svn菜单中的add命令 4.右击文件执行svn菜单中的commit命 ...

最新文章

  1. 二流四流神经网路(模型融合矩阵乘法理论实践)
  2. 并发编程协程(Coroutine)之Gevent
  3. 机器物联网的四大价值流
  4. 软件工程-东北师大站-第九次作业(PSP)
  5. mysql8 2058_SQLyog连接MySQL8.0及以上版本出现2058错误解决方案
  6. element手机验证格式_vue封装 element-ui form表单验证 正则匹配手机号 自定义校验表格内容...
  7. VS2010“.NET研究”中的调试技巧
  8. scala spark 数据对比_Spark 实践——用 Scala 和 Spark 进行数据分析
  9. OPNET14.5+WIN10+VS2010安装教程(附安装包)
  10. 网络登录计算机密码怎么设置,电脑怎么设置无线网密码?
  11. (大概是最全的解决方法)使用bandicam录制视频导入pr后音画不同步问题
  12. Java 地心地固坐标系转经纬度(WGS-84大地坐标)
  13. golang反射的类型Type与种类Kind使用
  14. 光衰高怎么办_发光顶角线使用起来方便吗?维护成本高吗?
  15. 2021高考体检成绩查询,2021年重庆高考体检报告结果查询时间及查询网址入口
  16. 三相对称电力系统中的正序、负序、零序分量
  17. AD9910使用心得-fanfanStudio
  18. 御坂网络(枚举基准,二分图)
  19. 基于fpga的单线激光雷达数据处理
  20. 《只是为了好玩:Linux之父林纳斯自传》

热门文章

  1. Python标准模块--multiprocessing
  2. [LeetCode] NO. 242 Valid Anagram
  3. bootstrap dialog
  4. 军哥lnmp一键安装包详解
  5. pip极速安装指定下载源
  6. 通信线路工程验收规范 gb51171-2016_一级建造师市政涉及到的相关规范汇总
  7. python股票数据分析_Python股票分析(一)获取历史数据
  8. ios java aes_PHP7 AES加密解密函数_兼容ios/andriod/java对等加解密
  9. 用mysql web建立论坛_在web1上搭建Discuz论坛
  10. matlab实验是啥,实验一 MATLAB的实验环境及基本命令.ppt