是否有ContentResolver来获取File而不是FileDescriptor?

时间:2014-03-08 17:11:40

标签: android file-io

我正在使用一个意图来调用我的应用程序外部的文件选择器。一些文件选择器应用程序返回一个方案“内容”的Uri。

我需要获取所选对象的最后修改日期。当方案是“内容”时,我该怎么做?我找不到合适的API。

有一些API可以返回FileDescriptor。但我没有从FileDescriptor获取最后修改日期。任何帮助欣赏。

最好的问候

1 个答案:

答案 0 :(得分:2)

一般情况下,您无法做您想做的事情 - 没有API可以获取"内容"描述的项目的文件。 URI,因为内容URI无论如何都不必与文件对应。

实际上,可以获取某些内容URI的文件路径:

  • 正如您所描述的,有时您可以通过将内容方案更改为文件方案来操作内容uri

  • 如果内容URI来自媒体商店,那么您可以进行查询以获取文件路径

    public static String getPathnameFromMediaUri(Activity activity, Uri contentUri)
    {
        String[] projection = { MediaStore.Images.Media.DATA };
        Cursor cursor = activity.managedQuery(contentUri, projection, null, null, null);
        int column_index = cursor.getColumnIndexOrThrow(MediaStore.Images.Media.DATA);
        cursor.moveToFirst();
        return cursor.getString(column_index);
    }

还有很多其他问题提出了相同的事情,提供了进一步的想法(或者相同想法的工作略有不同)