原因
创建文件夹是系统出错,导致系统的文件数据库记录的文件夹类型变成了文件类型
解决办法
修改系统文件数据库记录的文件类型
/**
* 更新external.db
*/
private static void notifyDirUpdate(String path, Context context) {
Cursor cursor = null;
try {
ContentResolver resolver = context.getContentResolver();
Uri uri = Uri.parse("content://" + MediaStore.AUTHORITY + "/external/file");
ContentValues values = new ContentValues();
cursor = resolver.query(uri, new String[]{"format"}, MediaStore.Files.FileColumns.DATA + "=?",
new String[]{path}, null);
int format = 12288;
if (cursor != null) {
while (cursor.moveToNext()) {
format = cursor.getInt(0);
Log.i(TAG, "format=" + format);
}
if (format == 12288) {//判断是不是异常的文件夹
values.put(MediaStore.Files.FileColumns.DATA, path);
values.put("format", "12289");//12289:文件夹 12288:文件
resolver.update(uri, values, "_data = ?", new String[]{path});
}
}
} catch (Exception e) {
e.printStackTrace();
} finally {
if (cursor != null) {
cursor.close();
}
}
}
传入异常的文件路径进行文件类型修改即可