packagecn.javabs.iocase;importjava.io.File;importjava.io.FileInputStream;importjava.io.FileOutputStream;importjava.io.FilenameFilter;importjava.util.ArrayList;public classFileUtils {public static ArrayListlistFiles(File file,finalString[] suffixArray) {
FilenameFilter filter= newFilenameFilter() {
@Overridepublic booleanaccept(File dir, String name) {
File currFile= newFile(dir, name);if(currFile.isFile()) {for(String suffix : suffixArray) {if (name.endsWith("." +suffix)) {return true;
}
}
}return false;
}
};
ArrayList arraylist =fileDir(file, filter);returnarraylist;
}/*** 复制文件/目录
*
*@paramsrcFile
*@paramdesFile
*@throwsException*/
public static voidcopySrcPathToDestPath(File srcFile, File destFile)throwsException {
File[] files=srcFile.listFiles();for (int i = 0; i < files.length; i++) {
File copiedFile= newFile(destFile, files[i].getName());if(files[i].isDirectory()) {if (!copiedFile.mkdirs()) {
System.out.println("无法创建 + copiedFile");return;
}
copySrcPathToDestPath(files[i], copiedFile);
}else{
FileInputStream input= newFileInputStream(files[i]);
FileOutputStream output= newFileOutputStream(copiedFile);byte[] buffer = new byte[1024];int len = 0;while ((len = input.read(buffer)) != -1) {
output.write(buffer,0, len);
}
input.close();
output.close();
}
}
}/*** 指定关键字检索文件
*
*@paramfile
*@paramkey
*@return
*/
public static ArrayList listFiles(File file, finalString key) {
FilenameFilter filter= newFilenameFilter() {
@Overridepublic booleanaccept(File dir, String name) {
File currFile= newFile(dir, name);if (currFile.isFile() &&name.contains(key)) {return true;
}return false;
}
};//递归当时获取规定的路径
ArrayList arraylist =fileDir(file, filter);returnarraylist;
}/***
*@paramdir
*@paramfilter
*@return
*/
private static ArrayListfileDir(File dir, FilenameFilter filter) {
ArrayList arraylist = new ArrayList();
File[] lists=dir.listFiles(filter);for(File list : lists) {
arraylist.add(list.getAbsolutePath());
}
File[] files=dir.listFiles();for(File file : files) {if(file.isDirectory()) {
ArrayList every =fileDir(file, filter);
arraylist.addAll(every);
}
}returnarraylist;
}
}