从通过 FileProvider 创建的 Uri 获取文件路径
Get file path from Uri created via FileProvider
我使用此方法从 Uri 获取文件路径 https://github.com/iPaulPro/aFileChooser/blob/master/aFileChooser/src/com/ipaulpro/afilechooser/utils/FileUtils.java#L257
但是当我传递如下创建的 Uri 时它会抛出异常(未找到“_data”列):
public static Uri uriFromFile(Context context, String path) {
if (path == null) return null;
return FileProvider.getUriForFile(context, BuildConfig.APPLICATION_ID + ".provider", new File(path));
}
我只需要在我的活动之间传递文件路径..
I use this method for getting file path from Uri
这是一种不可靠的方法,仅适用于少数 Uri
个值。
But it throw exception ("_data" column not found) when I pass Uri created such as below:
当然可以。对于大多数 Uri
值的来源,该代码将失败。
Get file path from Uri created via FileProvider
在这个具体案例中,您已经知道 "file path"。它由代码段中名为 path
的变量表示。
更一般地说,您不能为 Uri
获得 "file path",原因很简单,没有要求 Uri
指向一个文件,更不用说一个你可以访问。使用 ContentResolver
和类似 openInputStream()
的方法访问 Uri
.
表示的内容
我使用此方法从 Uri 获取文件路径 https://github.com/iPaulPro/aFileChooser/blob/master/aFileChooser/src/com/ipaulpro/afilechooser/utils/FileUtils.java#L257
但是当我传递如下创建的 Uri 时它会抛出异常(未找到“_data”列):
public static Uri uriFromFile(Context context, String path) {
if (path == null) return null;
return FileProvider.getUriForFile(context, BuildConfig.APPLICATION_ID + ".provider", new File(path));
}
我只需要在我的活动之间传递文件路径..
I use this method for getting file path from Uri
这是一种不可靠的方法,仅适用于少数 Uri
个值。
But it throw exception ("_data" column not found) when I pass Uri created such as below:
当然可以。对于大多数 Uri
值的来源,该代码将失败。
Get file path from Uri created via FileProvider
在这个具体案例中,您已经知道 "file path"。它由代码段中名为 path
的变量表示。
更一般地说,您不能为 Uri
获得 "file path",原因很简单,没有要求 Uri
指向一个文件,更不用说一个你可以访问。使用 ContentResolver
和类似 openInputStream()
的方法访问 Uri
.