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

 

 

//得到想要扫描的目录
		//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;
	            }
	        });
	    }

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值