[英]Search in a directory wav files
我想在目录中搜索wav文件是否存在。
如何在Java中做到这一点?
谢谢。
如果使用此:
File dir = new File("/your/dir");
File[] files = dir.listFiles(new FilenameFilter() {
public boolean accept(File dir, String name) {
return name.toLowerCase().endsWith(".wav");
}
});
然后, files
将包含以.wav
结尾的File
对象数组。 如果只想知道是否存在,请检查files.length > 0
。
使用File类。 它可以告诉您它是一个目录,并提供文件列表。 然后,您将能够使用File.getName()
方法分析扩展名。
将FileFilter与File.list()一起使用
FileFilter ff = java.io.FileFilter {
public boolean accept(File f) {
String name = f.getName().toLowerCase();
return name.endsWith("wav")
}
dir.list(ff);
使用递归可以显示目录中更深的文件,并在其中指定哪种文件类型(可重用性)。
// This collection will contain all the file names
final Collection<File> fileCollection = new ArrayList<File>();
public void addDirectory(File dir, Collection<File> fileCollection, String fileType){
if (fileType == null){
fileType = "";
}
final File[] children = dir.listFiles();
if (children != null){
for(File child : children){
if (child.getName().endsWith(fileType)){
fileCollection.add(child);
}
addDirectory(child, fileCollection, fileType);
}
}
}
您可能要为此特定扩展名创建文件过滤器。
FileFilter wavFiter = new FileFilter(){
@Override
public boolean accept(File pathname) {
return pathname.getPath().toLowerCase().endsWith("wav");
}
}
或任何其他
class FileExtentionFilter implements FileFilter {
private final String extenstion;
FileExtenstionFilter(String extenstion) {
this.extenstion = extenstion;
}
@Override
public boolean accept(File pathname) {
return pathname.getPath().toLowerCase().endsWith("wav");
}
}
然后像这样使用
File dir = new File(dirPath);
File[] waves = dir.listFiles(wavFiter);
要么
File dir = new File(dirPath);
File[] waves = dir.listFiles(new FileExtentionFilter("wav"));
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.