我需要查询由我的应用程序创建的特定隐藏文件夹,并且需要获取保存在该隐藏文件夹中的所有图像。我可以查询同一个文件夹,如果它没有隐藏但是当我隐藏文件夹时,光标计数会返回0,即使图像保存在文件夹中。
public static List<MediaData> getHiddenFolderData(Context context) {
Cursor imagecursor = null;
List<MediaData> gallerydata = new ArrayList<MediaData>();
try {
final String orderBy = Images.Media._ID + " DESC";
imagecursor = context.getContentResolver()
.query(Images.Media.EXTERNAL_CONTENT_URI,
projectionImage,
Images.Media.BUCKET_DISPLAY_NAME + "='"
+ ".HiddenFolder" + "'", null,
orderBy);
System.out.println("1026 check log 1");
if (imagecursor != null) {
System.out.println("1026 check log 2");
imagecursor.moveToFirst();
int count = imagecursor.getCount();
System.out.println("1026 check log 3 count"+" "+count);
for (int i = 0; i < count; i++) {
MediaData galData = new MediaData();
galData.setKey_id(i);
galData.setId(imagecursor.getString(0));
galData.setName(imagecursor.getString(1));
galData.setPath(imagecursor.getString(2));
galData.setDate(imagecursor.getString(3));
gallerydata.add(galData);
imagecursor.moveToNext();
}
}
} catch (Exception e) {
e.printStackTrace();
} finally {
if (imagecursor != null) {
imagecursor.close();
}
}
return gallerydata;
}
另一种方法
private void getHiddenFolderData() {
String path = Environment.getExternalStorageDirectory().toString() + "/Pictures/.HiddenFolder";
System.out.println("here is path" + " " + "Path: " + path);
File directory = new File(path);
File[] files = directory.listFiles();
System.out.println("here is size" + " " + files.length);
for (int i = 0; i < files.length; i++) {
System.out.println("here get file prop"+" "+files[i].getName()+" "+files[i].getPath());
}
}