当前位置 : 首页 » 编程语言 » 正文

Android 遍历文件夹中所有文件的实例代码

分类 : 编程语言 | 发布时间 : 2018-04-21 09:06:21 | 浏览 : 1

可以获得文件夹中所有文件的路径及文件名。

代码很简单,直接上车,车上再解释:

/**
   * 获取指定目录内所有文件路径
   * @param dirPath 需要查询的文件目录
   * @param _type 查询类型,比如mp3什么的
   */
  public static JSONArray getAllFiles(String dirPath, String _type) {
    File f = new File(dirPath);
    if (!f.exists()) {//判断路径是否存在
      return null;
    }

    File[] files = f.listFiles();

    if(files==null){//判断权限
      return null;
    }

    JSONArray fileList = new JSONArray();
    for (File _file : files) {//遍历目录
      if(_file.isFile() && _file.getName().endsWith(_type)){
        String _name=_file.getName();
        String filePath = _file.getAbsolutePath();//获取文件路径
        String fileName = _file.getName().substring(0,_name.length()-4);//获取文件名
//        Log.d("LOGCAT","fileName:"+fileName);
//        Log.d("LOGCAT","filePath:"+filePath);
        try {
          JSONObject _fInfo = new JSONObject();
          _fInfo.put("name", fileName);
          _fInfo.put("path", filePath);
          fileList.put(_fInfo);
        }catch (Exception e){
        }
      } else if(_file.isDirectory()){//查询子目录
        getAllFiles(_file.getAbsolutePath(), _type);
      } else{
      }
    }
    return fileList;
  }

相关阅读:

What is 'Context' on Android?

Location of sqlite database on the device

Set the layout weight of a TextView programmatically

Disabling of EditText in android

How to print all key and values from HashMap in Android?

How To Set Text In An EditText

With android studio no jvm found, JAVA_HOME has been set

ADB Android Device Unauthorized

How to insert a SQLite record with a datetime set to 'now' in Android application?

XXHDPI and XXXHDPI dimensions in dp for images and icons in android