如何在android中查询图像的特定隐藏文件夹

时间:2017-11-07 05:03:22

标签: android android-contentresolver

我需要查询由我的应用程序创建的特定隐藏文件夹,并且需要获取保存在该隐藏文件夹中的所有图像。我可以查询同一个文件夹,如果它没有隐藏但是当我隐藏文件夹时,光标计数会返回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());

    }
}

0 个答案:

没有答案