用Java实现将多级文件夹下的所有文件统一放到一个文件夹中

Posted 风华绝代的二狗子

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了用Java实现将多级文件夹下的所有文件统一放到一个文件夹中相关的知识,希望对你有一定的参考价值。

每次下了电影(男生懂得呦),每部电影都放在一个单独的文件夹里,看的时候很是不方便啊,一直重复着进入文件夹、后退,再进、再退的操作,而手动把这些电影全部复制出来又太繁琐。因此为了解决这个问题,用IO写了一个小工具。

以下代码只实现了把多级文件夹下的所有文件复制到一个文件夹中,如果需要指定复制文件的格式,可以在1111处添加一个判断。如果需要同时删除原文件夹可以在添加一个递归删除的方法。

package Bao;

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 CopyFolderDemo {
public static void main(String[] args) throws IOException {
// 封装数据源File
File srcFile = new File("d:\\文件夹名字");    //这里填源文件夹路径

copyFolder(srcFile);
//copyFile(srcFile);
}

private static void copyFolder(File srcFile)
throws IOException {
// 判断该File是文件夹还是文件
File[] ff=srcFile.listFiles();
for(File f:ff){

//如果是文件夹,则递归调用
if(f.isDirectory()){
copyFolder(f);
}else{               ///11111

//如果是文件则复制
copyFile(f);
//System.out.println(f.getName());


}
}
}
//用字节缓冲流实现文件复制
private static void copyFile(File srcFile) throws IOException {

File destFile = new File("d:\\文件夹名字",srcFile.getName());   //这里写目的文件夹路径
BufferedInputStream bis = new BufferedInputStream(new FileInputStream(
srcFile));
BufferedOutputStream bos = new BufferedOutputStream(
new FileOutputStream(destFile));

byte[] bys = new byte[1024];
int len = 0;
while ((len = bis.read(bys)) != -1) {
bos.write(bys, 0, len);
}

bos.close();
bis.close();
}
}

以上是关于用Java实现将多级文件夹下的所有文件统一放到一个文件夹中的主要内容,如果未能解决你的问题,请参考以下文章

Java一键批量替换掉文件夹以及子文件的名称

把src目录下的java类文件打成jar包放到web-inf下的lib里,classes文件删除

Java文件夹操作,判断多级路径是否存在,不存在就创建(包括windows和linux下的路径字符分析)

汇总制定目录下的CSV 文件内容至统一目录中

用java写一个代码实现: 如何列出某个目录下的所有子目录

写一个能创建多级目录的PHP函数