在不知道任何条件的情况下如何实现java遍历文件夹下的所有图片

如题所述

第1个回答  2012-03-20
/**
* 在dir目录及其子目录中
* 查找符合给定格式的文件
* @param dir 查找的文件夹
* @param regex 文件格式正则表达式
* @return 找到的文件对象数组
*/
public static File[] search(File dir,final String regex){
Deque<File> stack = new LinkedList<File>();
Deque<File> allDir = new LinkedList<File>();
stack.push(dir);

//获得所有文件夹,包括深层目录
while(!stack.isEmpty()){
dir = stack.poll();
allDir.push(dir);
File[] dirs = dir.listFiles(new FileFilter(){
public boolean accept(File f){
return f.isDirectory();//只列出子目录
}
});
for(File f:dirs){
stack.push(f);
}
}

//allDir中所有的目录中匹配的文件
//放入List
ArrayList<File> list = new ArrayList<File>();
while(!allDir.isEmpty()){
File d = allDir.pop();
File[] files = d.listFiles(new FileFilter(){
public boolean accept(File f) {
//目录不要
if(f.isDirectory()) {return false;}
//只要匹配的文件
return f.getName().matches(regex);
}

});
for(File f:files){
list.add(f);
}
}
File[] arr = new File[list.size()];
return list.toArray(arr);
}

第一个参数是路径,第二个匹配文件类型。
第2个回答  2012-03-20
使用 Iterator类进行遍历查找 该类中有两个方法,hasNext() 和next()
boolean hasNext()如果仍有元素可以迭代,则返回 true。(换句话说,如果 next 返回了元素而不是抛出异常,则返回 true)。

next()返回迭代的下一个元素。
抛出:
NoSuchElementException - 没有元素可以迭代。本回答被网友采纳
第3个回答  2012-03-20
可以按照文件类型遍历,文件类型也是文件名的一部分
相似回答