首页 > 解决方案 > java.io.FileNotFoundException:/storage/emulated/0/Android/data/MyApplication/MyFile.ics。(没有这样的文件或目录)/Android Studio/Ical4j

问题描述

我正在寻求您的帮助,我被困在我的 android 项目中,找不到解决方案。

解释 :

我使用 FileUtils.copyURLToFile(url, file) 从 Internet 上的 URL 中检索 .ics (iCalendar) 文件,并使用 Apache 公共库。它工作得很好,我的文件是用我的数据创建的,它是可读的。

我将文件保存在 路径中:/storage/emulated/0/Android/data/MyApplication/MyFile.ics。

我可以在此地址的手机(Android Pie)和/或模拟器(Android Oreo)的文件中看到它。所以它被很好地创造和呈现。

但是当我想用 iCal4j 库解析我的文件时,我收到包含 FileInputStream 的行的错误,告诉我我的文件或目录在此地址不存在。

编辑 我指定我使用 file.exist() 检查我的文件是否存在。如果它存在,那么它会调用该函数来解析我的文件。我对 FileInputStream 有问题的地方。所以是的,file.exist() 告诉我它存在。

    File file = new File(Environment.getExternalStorageDirectory() + "/Android/data/MyApplication/MyFile.ics");

    FileInputStream fin = new FileInputStream(file.getPath());

    CalendarBuilder builder = new CalendarBuilder();

    Calendar calendar = builder.build(fin);

我有一个错误。

我的错误:

W/System.err: java.io.FileNotFoundException: /storage/emulated/0/Android/data/MyApplication/MyFile.ics (No such file or directory)
    at java.io.FileInputStream.open0(Native Method)
    at java.io.FileInputStream.open(FileInputStream.java:200)
    at java.io.FileInputStream.<init>(FileInputStream.java:150)
    at java.io.FileInputStream.<init>(FileInputStream.java:103)

我的manifest.xml

<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />

我还询问了用户访问存储的权限:

requestPermissions(new String[]{WRITE_EXTERNAL_STORAGE,READ_EXTERNAL_STORAGE}, 1);

我希望我足够清楚以获得帮助,谢谢。

标签: javaandroidandroid-studioical4j

解决方案


尝试使用以下代码File file = new File(Environment.getExternalStorageDirectory() + "/MyApplication/MyFile.ics");


推荐阅读