java .io.FileNotFoundException: /storage/emulated/0/Android/data/MyApplication/MyFile.ics. (Нет такого файла или каталога) / Android Studio / Ical4j - PullRequest
0 голосов
/ 28 мая 2020

Я звоню вам за помощью, я застрял в своем проекте android и не могу найти решение.

Пояснение:

Я получаю файл .ics (iCalendar) из URL-адреса на inte rnet с помощью Apache Common библиотеки, используя FileUtils.copyURLToFile (url, file). Он работает очень хорошо, мой файл создан с моими данными и доступен для чтения.

Я сохраняю свой файл в по пути : / storage / emulated / 0 / Android / data / MyApplication / MyFile.ics.

Я вижу это в файлах телефона (Android P ie) и / или эмулятор (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)

Мой манифест. 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);

Надеюсь Я был достаточно ясным, чтобы получить помощь, спасибо.

1 Ответ

0 голосов
/ 28 мая 2020

попробуйте со следующим кодом File file = new File(Environment.getExternalStorageDirectory() + "/MyApplication/MyFile.ics");

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...