自己写的文件搜索,如有疑义请留言:
private File[] forder;
private File[] files;
private List<File> listforder = new ArrayList<File>();//存放文件夹
private String root = Properties.ROOT;//根目录
private File f;
public List<String> SearchAudio() {
List<String> list = new ArrayList<String>();
f = new File(root);
forder = f.listFiles(new DirFilter());
for (int i = 0; i < forder.length; i++) {
listforder.add(forder[i]);
}
files = f.listFiles(new AudioFilter());
for (int i = 0; i < files.length; i++) {
list.add(files[i].getAbsolutePath());
}
while (listforder.size() > 0) {
for (int j = 0; j < listforder.size(); j++) {
f = listforder.get(j);
forder = f.listFiles(new DirFilter());
files = f.listFiles(new AudioFilter());
for (int i = 0; i < forder.length; i++) {
listforder.add(forder[i]);
}
for (int i = 0; i < files.length; i++) {
list.add(files[i].getAbsolutePath());
}
listforder.remove(j);
}
}
return list;
}
/**
* 查找以mp3、wma、ogg、wav结尾的音乐文件
* 音乐文件名过滤
* */
class AudioFilter implements FilenameFilter {
public boolean isMp3(String file) {
if (file.toLowerCase().endsWith(".mp3")) {
return true;
} else {
return false;
}
}
public boolean isWma(String file) {
if (file.toLowerCase().endsWith(".wma")) {
return true;
} else {
return false;
}
}
public boolean isOgg(String file) {
if (file.toLowerCase().endsWith(".ogg")) {
return true;
} else {
return false;
}
}
public boolean isWav(String file) {
if (file.toLowerCase().endsWith(".wav")) {
return true;
} else {
return false;
}
}
public boolean accept(File dir, String filename) {
return (isMp3(filename) || isWma(filename) || isOgg(filename) || isWav(filename));
}
}
/**
* 查找目录
*
* */
class DirFilter implements FileFilter {
public boolean accept(File pathname) {
return isDir(pathname);
}
public boolean isDir(File files) {
if (files.isDirectory()) {
return true;
} else {
return false;
}
}
}