JSONArray & JSONObject 实例演示 : 读取文件夹中的文件
程序员文章站
2022-06-05 13:47:09
...
/**
* 这部分是生成
* 获取指定目录内所有文件路径
*
* @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;
}
// 存储 JSONObject
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);//获取文件名
long createTime = _file.lastModified();
long fileLength = _file.length();
String millis2String = TimeUtils.millis2String(createTime);
String memorySize = ConvertUtils.byte2FitMemorySize(_file.length());
try {
// 像 Map 一样写入
JSONObject _fInfo = new JSONObject();
_fInfo.put("name", fileName);
_fInfo.put("path", filePath);
_fInfo.put("createTime", millis2String);
_fInfo.put("fileLength", memorySize);
// 存入 JSONArray
fileList.put(_fInfo);
} catch (Exception e) {
}
} else if (_file.isDirectory()) {
//查询子目录
getAllFiles(_file.getAbsolutePath(), _type);
} else {
}
}
return fileList;
}
/**
* 这一部分是解析
*/
public void ReadFileListFromDir() {
new Thread() {
@Override
public void run() {
super.run();
JSONArray allFiles = FileUtils.getAllFiles(Constants.STORY_BOOK, "pdf");
int length = allFiles.length();
for (int i = 0; i < length; i++) {
try {
JSONObject jsonObject = (JSONObject) allFiles.get(i);
String name = jsonObject.getString("name");
String path = jsonObject.getString("path");
String createTime = jsonObject.getString("createTime");
String fileLength = jsonObject.getString("fileLength");
Log.i(TAG, "run: name: " + name + " path:" + path+" createTime: "+createTime+" fileLength: "+fileLength);
} catch (JSONException e) {
e.printStackTrace();
}
}
}
}.start();
}
上一篇: 【单调】理想的正方形