//得到想要扫描的目录
//String fileName = getSDCardPath();//从根目录开始扫描
String fileName = getSDCardPath() + "/localhost";//从根目录下的localhost文件夹开始扫描
File videoFile = new File(fileName);
// 先判断这个文件是否存在
if (videoFile.exists()) {
List<Info> list = new ArrayList<Info>();
GetFilePath(list,videoFile);//开始扫描此文件夹下想要的文件
} else {
Toast.makeText(this, "文件不存在", Toast.LENGTH_LONG).show();
}
//判断sd卡是否存在并返回根目录
private String getSDCardPath(){
File sdDir = null;
boolean sdCardExist = Environment.getExternalStorageState().equals(
android.os.Environment.MEDIA_MOUNTED);// 判断sd卡是否存在
if (sdCardExist) {
sdDir = Environment.getExternalStorageDirectory();// 获取根目录
}
return sdDir.toString();
}
private void GetFilePath(final List<Info> list, File file) {
file.listFiles(new FileFilter() {
@Override
public boolean accept(File file) {
String name = file.getName();
int i = name.indexOf('.');
if (i != -1) {
name = name.substring(i);
if ( name.equalsIgnoreCase(".mp4")
|| name.equalsIgnoreCase(".3gp") ){
//得到文件路径
String file_path = file.getAbsolutePath();
//得到文件名称
String file_name = file.getName();
Info info = new Info();
info.setName(file_name);
info.setPath(file_path);
list.add(info);
return true;
}
}else if(file.isDirectory()){//如果此文件夹存在子目录
//继续递归搜索子目录,如果注释,则只搜索当前目录
GetFilePath(list,file);
}
return false;
}
});
}