用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();
}
}


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM