关于文件夹里的文件的提取 假如我给定文件夹C:\test, 在test文件夹下面可能还有其他一层一层的文件夹,我要找出所有这些文件夹里面符合一定条件的文件,这个文件我已经写好一个类了:class TestCaseFilter implements FilenameFilter ,那么我想写一个函数,得到符合这些条件的所有的文件的文件名列表(string 数组),该怎么写呢? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 import java.io.File;import java.io.FilenameFilter;public class TestCaseFilter implements FilenameFilter { public boolean accept(File dir, String name) { //可以使用正则表达式等多种匹配方式 //如果返回真,则在调用list方法时列举出来,反之 return name.endsWith(".jar");//显示以.jar结尾的文件 }}************************************************************************import java.io.File;public class ListFile { /** * @param args */ public static void main(String[] args) { // TODO Auto-generated method stub File file=new File("c:/test"); String[] filenames=file.list(new TestCaseFilter()); for(int i=0;i<filenames.length;i++){ System.out.println(filenames[i]); } }} class listFile { private static File file; private static File lastDr; private static ArrayList<String> arr = new ArrayList<String>(); private static File[] rootList; public static ArrayList<String> listFolder(String path) { String[] temp; file = new File(path); File[] list = file.listFiles(); TestCaseFilter filter = new TestCaseFilter(); for (int i = 0; i < list.length; i++) { if (list[i].isDirectory()) {// oldLastDr = lastDr; lastDr = list[i]; listFolder(list[i].getPath()); } else { temp = lastDr.list(filter);// if(lastDr != oldLastDr) { for (int k = 0; k < temp.length; k++) arr.add(temp[k]);} // } i = list.length; } for (int k = 0; k < arr.size(); k++){ System.out.println(arr.get(k)); } return arr; }}可是这样似乎文件被读取了好多遍 一个JFrame里显示多个jfreechart图,怎么做?(在线结贴) java数组操作中求长度 传入的表格格式数据流(TDS)远程过程调用(RPC)协议流不正确 线程类看不懂 [分享]分享一个下载cisco视频的网址 问一个类型转换的菜鸟问题 ★★★★★挑战极限,显示你的功力,一个简单而又常见的算法问题★★★★★ 怎么没人讨论concurrent programming啊 谁知道哪里有jbulider4下载,我的机器跑jbulider5很慢! java源码解读困惑 GridBagLayout 问题请教 有关预处理模糊查询的问题,寻求帮助,谢谢
import java.io.FilenameFilter;
public class TestCaseFilter implements FilenameFilter { public boolean accept(File dir, String name) {
//可以使用正则表达式等多种匹配方式
//如果返回真,则在调用list方法时列举出来,反之
return name.endsWith(".jar");//显示以.jar结尾的文件
}}
************************************************************************
import java.io.File;
public class ListFile { /**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
File file=new File("c:/test");
String[] filenames=file.list(new TestCaseFilter());
for(int i=0;i<filenames.length;i++){
System.out.println(filenames[i]);
}
}}
private static File file;
private static File lastDr;
private static ArrayList<String> arr = new ArrayList<String>();
private static File[] rootList;
public static ArrayList<String> listFolder(String path) {
String[] temp;
file = new File(path);
File[] list = file.listFiles();
TestCaseFilter filter = new TestCaseFilter();
for (int i = 0; i < list.length; i++) {
if (list[i].isDirectory()) {
// oldLastDr = lastDr;
lastDr = list[i];
listFolder(list[i].getPath());
}
else {
temp = lastDr.list(filter);
// if(lastDr != oldLastDr) {
for (int k = 0; k < temp.length; k++)
arr.add(temp[k]);}
// }
i = list.length;
}
for (int k = 0; k < arr.size(); k++){
System.out.println(arr.get(k));
}
return arr;
}
}
可是这样似乎文件被读取了好多遍