Android扫描SD卡或者SD下某个文件夹得到想要的文件

 

 

//得到想要扫描的目录
		//String fileName = getSDCardPath();//从根目录开始扫描
		String fileName = getSDCardPath() + "/localhost";//从根目录下的localhost文件夹开始扫描 
		File videoFile = new File(fileName);

		// 先判断这个文件是否存在
		if (videoFile.exists()) {
			List list = new ArrayList();
			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 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;
	            }
	        });
	    }

 

 

 

 

 

你可能感兴趣的:(java)