【发布时间】:2013-07-17 10:42:57
【问题描述】:
我正在文件夹中搜索声音文件,想知道声音文件是否存在,可能是 .mp3、.mp4 等。我只是想确保文件名(不带扩展名)存在。
例如文件搜索 /home/user/desktop/sound/a
如果存在 a.mp3 或 a.mp4 或 a.txt 等,则返回找到。
我试过了:
File f=new File(fileLocationWithExtension);
if(f.exist())
return true;
else return false;
但在这里我也必须传递扩展名,否则它总是返回 false
对于任何来这里的人,这是我想出的最好方法
public static void main(String[] args) {
File directory=new File(your directory location);//here /home/user/desktop/sound/
final String name=yourFileName; //here a;
String[] myFiles = directory.list(new FilenameFilter() {
public boolean accept(File directory, String fileName) {
if(fileName.lastIndexOf(".")==-1) return false;
if((fileName.substring(0, fileName.lastIndexOf("."))).equals(name))
return true;
else return false;
}
});
if(myFiles.length()>0)
System.Out.println("the file Exist");
}
缺点:即使找到了我在问题中从未想过的文件,它也会继续搜索。欢迎提出任何建议
【问题讨论】:
-
如果文件存在,我可以成功得出结论,但我必须提供扩展名
-
您使用的是 Java 6 还是 Java 7?
-
我已经编辑了我迄今为止尝试过的内容
-
这可能会有所帮助(我最近发布的答案)stackoverflow.com/questions/17652826/…。更改匹配标准,然后检查数组大小。
-
java -version on ubuntu 终端提供 java 版本 "1.7.0_21" Java(TM) SE Runtime Environment (build 1.7.0_21-b11) Java HotSpot(TM) 64-Bit Server VM (build 23.21) -b01,混合模式)