/** * 搜索sdcard判断是否存在指定文件,若存在则返回文件的绝对路径 * @param dirName * @param musicName * @param singerName * @param suffix * @return */ public String exists(String dirName, String musicName, String singerName , String suffix) { String path = null; File dirFile = new File(dirName); // 如果dir不以文件分隔符结尾,自动添加文件分隔符。 if (!dirName.endsWith(File.separator)) { dirName = dirName + File.separator; } // 如果dir对应的文件不存在,或者不是一个文件夹,则退出 if (!dirFile.exists() || (!dirFile.isDirectory())) { System.out.println("List fail !can not find dir :" + dirName); } // 列出源文件夹下所有文件(包括子目录) File[] files = dirFile.listFiles(); for(int i=0; i<files.length; i++){ if (files[i].isFile()){ String name = files[i].getName(); if ((name.indexOf(suffix)) != -1) { int j = name.indexOf(musicName); int k = name.indexOf(singerName); if (j != -1 && k != -1) { path = files[i].getAbsolutePath(); break; } } } else if (files[i].isDirectory()) { //System.out.println(files[i].getAbsolutePath() + " is dir !"); if(files[i].listFiles() != null && path == null){ path = exists(files[i].getAbsolutePath(), musicName, singerName, suffix); if(path != null) break; } } } return path; }