从 Android 中的 Uri 获取文件名
Get file name from Uri in Android
我使用以下代码构建了一个 Uri
final Uri fileUri = DocumentsContract.buildChildDocumentsUriUsingTree(rootUri, docId);
包含值:
content://com.android.externalstorage.documents/tree/primary%Sample/document/primary%Sample%2FMedia%2F.Hide%2FScreenshot_1615959401.png/children
下面是我访问文件名称和 MIME 类型的代码:
ContentResolver contentResolver = getContentResolver();
Cursor cursor = contentResolver.query(fileUri, new String[]{DocumentsContract.Document.COLUMN_DOCUMENT_ID, DocumentsContract.Document.COLUMN_DISPLAY_NAME, DocumentsContract.Document.COLUMN_MIME_TYPE}, null, null, null);
try {
if (cursor != null && cursor.moveToFirst())
{
//Here cursor.moveToFirst() returns false
}
} catch(Exception e)
{
e.printStackTrace();
}
我想从 Uri 上面访问像 Screenshot_1615959401.png 这样的文件名,像 image/png 这样的 mime 类型文件,但是 cursor.moveToFirst() returns 0.为什么Uri有效也找不到记录。因为我尝试使用这个 Uri 来加载图像,而 ImageView 正在使用上面的 Uri 正确显示图像。
任何帮助将不胜感激,因为我花了很多时间谷歌搜索和阅读 SO 但没有找到任何解决方案或根本原因。
Below is my code to access the name and mime type of file:
那个Uri
不是一个文档。它用于文档树的子文档名册,其中树由 docId
标识。 childDocumentsUri
是你调用的方法名的核心。
Why record is not found even Uri is valid
它对您想要的操作无效。
如果您希望为文档构建 Uri
,给定文档 ID 和树,use buildDocumentUriUsingTree()
,而不是 buildChildDocumentsUriUsingTree()
。
我使用以下代码构建了一个 Uri
final Uri fileUri = DocumentsContract.buildChildDocumentsUriUsingTree(rootUri, docId);
包含值:
content://com.android.externalstorage.documents/tree/primary%Sample/document/primary%Sample%2FMedia%2F.Hide%2FScreenshot_1615959401.png/children
下面是我访问文件名称和 MIME 类型的代码:
ContentResolver contentResolver = getContentResolver();
Cursor cursor = contentResolver.query(fileUri, new String[]{DocumentsContract.Document.COLUMN_DOCUMENT_ID, DocumentsContract.Document.COLUMN_DISPLAY_NAME, DocumentsContract.Document.COLUMN_MIME_TYPE}, null, null, null);
try {
if (cursor != null && cursor.moveToFirst())
{
//Here cursor.moveToFirst() returns false
}
} catch(Exception e)
{
e.printStackTrace();
}
我想从 Uri 上面访问像 Screenshot_1615959401.png 这样的文件名,像 image/png 这样的 mime 类型文件,但是 cursor.moveToFirst() returns 0.为什么Uri有效也找不到记录。因为我尝试使用这个 Uri 来加载图像,而 ImageView 正在使用上面的 Uri 正确显示图像。
任何帮助将不胜感激,因为我花了很多时间谷歌搜索和阅读 SO 但没有找到任何解决方案或根本原因。
Below is my code to access the name and mime type of file:
那个Uri
不是一个文档。它用于文档树的子文档名册,其中树由 docId
标识。 childDocumentsUri
是你调用的方法名的核心。
Why record is not found even Uri is valid
它对您想要的操作无效。
如果您希望为文档构建 Uri
,给定文档 ID 和树,use buildDocumentUriUsingTree()
,而不是 buildChildDocumentsUriUsingTree()
。