原本我是想读取指定目录下的所有json文件,取得目录为 /storage/emulated/0/SleepPartner,
File file = new File(fileAbsolutePath);
if (!file.exists()) {
return null;
}
if(file.isDirectory()){
File[] subFile = file.listFiles();
}
却发现 subfile怎么都是null .百度得知在Android 系统中这并不是真正的文件夹路径, 真正的文件夹路径应该为 : /sadcard/SleepPartner, 可以将 /storage/emulated/0/SleepPartner 用split分隔开,代码如下:
// 获取当前目录下所有的json文件
public static Vector<String> GetJsonFileName(String fileAbsolutePath) {
Vector<String> vecFile = new Vector<String>();
// Log.i("fileAbsolutePath",fileAbsolutePath);
String[] dataStr = fileAbsolutePath.split("/");
String fileTruePath = "/sdcard";
for(int i=4;i<dataStr.length;i++){
fileTruePath = fileTruePath+"/"+dataStr[i];
}
File file = new File(fileTruePath);
if (!file.exists()) {
// Log.i("file",fileAbsolutePath+"asdddassssssss");
return null;
}
File[] subFile = file.listFiles();
if (Environment.getExternalStorageState().
equals(Environment.MEDIA_MOUNTED) && subFile!=null) {
for (int iFileLength = 0; iFileLength < subFile.length; iFileLength++) {
// 判断是否为文件夹
if (!subFile[iFileLength].isDirectory()) {
String filename = subFile[iFileLength].getName();
// 判断是否为json结尾
if (filename.trim().toLowerCase().endsWith(".json")) {
vecFile.add(fileTruePath+"/"+filename);
}
}
}
}
Log.i("vecfile",""+vecFile.size()+vecFile.get(0));
return vecFile;
}