Не удается прочитать файлы из каталога - Android

1

В проекте есть каталог /sdcard/audio. Этот каталог содержит некоторые аудиофайлы (wav).
Вот что я пытаюсь сделать:
1. Прочтите из каталога.
2. Воспроизведите файлы wav.

Код, который я написал для доступа к каталогу, выглядит следующим образом:

String path_to_media = "/sdcard/audio/";
File dirEffectFiles = new File(path_to_media);   //gets a handle to the directory of effect files.
Log.v(this.toString(), "Getting into path = " + path_to_media);
Log.v(this.toString(), "Some details about the directory: path = " + dirEffectFiles.getPath()
                + " Can read: " + dirEffectFiles.canRead() + " list:" + dirEffectFiles.list()
                + " absolute path:" + dirEffectFiles.getAbsolutePath() + " is absolute:" + dirEffectFiles.isAbsolute()); 

Вывод, который я получаю для выше,:

01-13 16: 23: 34.941: Некоторые подробности о каталог: путь =/sdcard/audio Может читать: false list: null absolute путь:/sdcard/audio является абсолютным: true

У меня есть следующие вопросы:
1. Как я могу сделать эту папку доступной для чтения? Установив dirEffectFiles.setReadable(true)?
2. Также обратите внимание, что path_to_media выше /sdcard/audio/. Когда он печатается, последний "/" исчезает. Является ли это нормальным эффектом какого-то внутреннего синтаксического анализа или я должен беспокоиться об этом?

Любая помощь приветствуется,
Спасибо,
Sriram.

Теги:
directory
audio
media-player

2 ответа

0
Лучший ответ

/sdcard/audio, упомянутый выше, был каталогом, созданным в каталоге проекта. Этот подход неверен. Каталог для эмуляции SD-карты должен быть создан с помощью adb (в командной строке (windows)):

  • adb shell mkdir /sdcard/audio - это создаст аудио/подкаталог в sdcard/
  • adb push "complete path of file name to be pushed" /sdcard/audio/file-name
  • Эта процедура повторяется для других волновых файлов.

Что это. Вы должны иметь возможность читать файлы из каталога mount/sdcard.
@thoredge: спасибо за вашу помощь.

1

Вы добавили правильное разрешение на AndroidManifest.xml?

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

Кроме того, разумно использовать метод среды для получения правильного пути SD-карты:

Environment.getExternalStorageDirectory()

Кроме того, что вы получаете от:

dirEffectFiles.exists()
  • 0
    Я добавил строку разрешений в манифест. Когда я печатаю детали из getExternalStorageDirectory (), я получаю / mnt / sdcard в качестве каталога внешнего хранилища. Кроме того, функция exist () возвращает false. Я думаю, что мне, возможно, придется изменить path_to_media. Позвольте мне вернуться к вам.
  • 0
    кажется, что изменение path_to_media на / mnt / sdcard / audio не работает. Но относится ли / mnt / sdcard к папке / sdcard в каталоге проекта или к образу sdcard, созданному с помощью mksdcard?
Показать ещё 3 комментария

Ещё вопросы

Сообщество Overcoder
Наверх
Меню