我的raw文件夹中有一个.txt文件。我想获取文件的uri并创建一个新文件以上传到firebase。
这个想法很简单
我已经完成了这个
String path = "android.resource://" + getPackageName() + "/" + "raw/grupos.txt";
Uri file = Uri.fromFile(new File(path));
但是当我致电
时riversRef.putFile(file)
.addOnSuccessListener(new OnSuccessListener<UploadTask.TaskSnapshot>() {....
表示该文件无效
logcat的
java.io.FileNotFoundException: /android.resource:/com.example.usuario.ottasubirarchivos/raw/grupos.txt: 打开失败:ENOENT(没有这样的文件或目录)
我不知道是否需要获取资源文件的路径,在内部存储中创建新文件,获取该文件并将其上传到firebase,或者使用流...我不知道如何处理...谢谢
答案 0 :(得分:1)
您可以使用此:
public class UriUtils {
public static Uri getUriToResource(@NonNull Context context, @AnyRes int resId) throws Resources.NotFoundException {
Resources res = context.getResources();
Uri resUri = Uri.parse(ContentResolver.SCHEME_ANDROID_RESOURCE +
"://" + res.getResourcePackageName(resId)
+ '/' + res.getResourceTypeName(resId)
+ '/' + res.getResourceEntryName(resId));
return resUri;
}
}
答案 1 :(得分:0)
您有这项工作吗?
我可以这样访问原始资源:Android.Net.Uri.Parse("android.resource://" + ApplicationContext.PackageName + "/" + Resource.Raw.beep)
文件beep.ogg
位于Resources/raw
目录下。我在这里注意到的是:Raw
,Resource
中的大写字母,而不是Resource S
中的大写字母,以及路径中的无扩展名文件名。正如CommonsWare在评论中指出的那样,您没有文件,但文件Uri可以直接对其进行解析