文件批量拷贝

有个需求,电脑里有个文件夹,文件夹里有着很多的子文件夹,分别记录了每天所写的一篇文章和一段录音,现在要将他们全部拷贝出来,放入一个指定的目录中。

主程序

package zx.javase.getpng;

import java.io.File;
import java.io.IOException;

public class Test {

    private static File outputFile=new File("G:\\output");
    private static File inputFile=null;
    private static CopyFile copyFile=new CopyFile();

    public static void listPath(File file) throws IOException{
        File[] listFiles = file.listFiles(new MyFilenameFilter());
        //遍历出指定路径下所有符合条件的文件
        for(File f:listFiles){
            if(f.isDirectory()){
                listPath(f);
            }else{
                System.out.println(f);
                //将f保存到另一个文件夹
                System.out.println("===="+f.getAbsolutePath());
                inputFile=new File(f.getAbsolutePath());
                copyFile.copy1(inputFile,outputFile);

            }
        }
    }

    public static void main(String[] args) throws IOException {
        File file = new File("G:\\BaiduYunDownload\\wj");
        listPath(file);
    }
}

文件名过滤

package zx.javase.getpng;

import java.io.File;
import java.io.FilenameFilter;

public class MyFilenameFilter implements FilenameFilter {

    @Override
    public boolean accept(File dir, String name) {

        // 创建返回值
        boolean flag = false;
        // 定义筛选条件
        // endWith(String str);判断是否以指定格式结尾
        if(dir.isDirectory()){
            flag=true;
        }

        if (name.toLowerCase().endsWith(".png")) {
            flag = true;
        } else if (name.toLowerCase().endsWith(".jpg")) {
            flag = true;
        } 
        return flag;

    }

}

文件拷贝

package zx.javase.getpng;

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 CopyFile {

    public static void copy1(File inputFile,File outputFile) throws IOException{
        FileInputStream fileInputStream = new FileInputStream(inputFile);
        BufferedInputStream bufferedInputStream = new BufferedInputStream(fileInputStream);

//      FileOutputStream fileOutputStream = new FileOutputStream(outputFile);
        FileOutputStream fileOutputStream = new FileOutputStream(new File(outputFile,inputFile.getName()));
        BufferedOutputStream bufferedOutputStream = new BufferedOutputStream(fileOutputStream);

        int len=0;
        while((len=bufferedInputStream.read())!=-1){
            bufferedOutputStream.write(len);
        }

        bufferedInputStream.close();
        bufferedOutputStream.close();

    }

}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值