我在Android应用程序中遇到问题,每当我尝试加载从电子邮件下载的文件时,我都收到java.io.FileNotFoundException
错误。这很奇怪,因为该文件清楚地显示在“下载”列表中,但是当我的应用程序尝试打开它时似乎找不到它。该错误引用了一个“/ document”目录,该目录在设备上实际上不存在。这类似乎可能与通过意图传递文件的某种机制有关,但我遗漏了一些东西。我在运行4.4.2的三星Galaxy Tab 4以及不同版本的Android Emulator上尝试这个。我看到的每个地方都遇到同样的问题。下面,我已经包含了错误消息。
对此有任何帮助将不胜感激。
感谢!!!
11-07 23:23:13.324 12193-12193 / com.xxxxxx.yyyyyyyyy E / ImportActivity: 文件选择错误11-07 23:23:13.324 12193-12193 / com.xxxxxx.yyyyyyyyy E / ImportActivity:java.io.FileNotFoundException:/ document / 1677:open 失败:ENOENT(没有这样的文件或目录)11-07 23:23:13.324 12193-12193 / com.xxxxxx.yyyyyyyyy E / ImportActivity:at libcore.io.IoBridge.open(IoBridge.java:409)11-07 23:23:13.324 12193-12193 / com.xxxxxx.yyyyyyyyy E / ImportActivity:at java.io.FileInputStream。(FileInputStream.java:78)11-07 23:23:13.324 12193-12193 / com.xxxxxx.yyyyyyyyy E / ImportActivity:at java.io.FileReader。(FileReader.java:42)11-07 23:23:13.324 12193-12193 / com.xxxxxx.yyyyyyyyy E / ImportActivity:at com.xxxxxx.yyyyyyyyy.ImportActivity.onActivityResult(ImportActivity.java:210) 11-07 23:23:13.324 12193-12193 / com.xxxxxx.yyyyyyyyy E / ImportActivity: 在android.app.Activity.dispatchActivityResult(Activity.java:5643) 11-07 23:23:13.324 12193-12193 / com.xxxxxx.yyyyyyyyy E / ImportActivity: 在android.app.ActivityThread.deliverResults(ActivityThread.java:3677) 11-07 23:23:13.324 12193-12193 / com.xxxxxx.yyyyyyyyy E / ImportActivity: 在 android.app.ActivityThread.handleSendResult(ActivityThread.java:3724) 11-07 23:23:13.324 12193-12193 / com.xxxxxx.yyyyyyyyy E / ImportActivity: 在android.app.ActivityThread.access $ 1400(ActivityThread.java:175) 11-07 23:23:13.324 12193-12193 / com.xxxxxx.yyyyyyyyy E / ImportActivity: 在 android.app.ActivityThread $ H.handleMessage(ActivityThread.java:1356) 11-07 23:23:13.324 12193-12193 / com.xxxxxx.yyyyyyyyy E / ImportActivity: 在android.os.Handler.dispatchMessage(Handler.java:102)11-07 23:23:13.324 12193-12193 / com.xxxxxx.yyyyyyyyy E / ImportActivity:at android.os.Looper.loop(Looper.java:146)11-07 23:23:13.324 12193-12193 / com.xxxxxx.yyyyyyyyy E / ImportActivity:at android.app.ActivityThread.main(ActivityThread.java:5602)11-07 23:23:13.324 12193-12193 / com.xxxxxx.yyyyyyyyy E / ImportActivity:at java.lang.reflect.Method.invokeNative(Native Method)11-07 23:23:13.324 12193-12193 / com.xxxxxx.yyyyyyyyy E / ImportActivity:at java.lang.reflect.Method.invoke(Method.java:515)11-07 23:23:13.324 12193-12193 / com.xxxxxx.yyyyyyyyy E / ImportActivity:at
答案 0 :(得分:0)
/document/1677
这不是文件系统路径,而是内容提供者路径的一部分。
您将看到url.getPath()的完整路径。
您可以使用
打开文档的输入流getContentResolver.openStream(url);