Подтвердить что ты не робот

Android assetManager

Мне нужно получить Абсолютный путь к папке в активах. Некоторым нравится это для SD-карты:

final String sdDir = Environment.getExternalStorageDirectory() + "Files";

Что я делаю неправильно?

enter image description here

Сначала я пытаюсь получить путь (в зеленом ractangle) таким образом, но я все равно получаю "False". Затем я комментирую этот блок и пытаюсь получить путь от getAssets(). List(); Но я получаю 3 папки, которые я вижу в первый раз.

Я хочу сделать массивным, как этот "зеленый", но мне нужно использовать файлы из активов:

Посмотрите изображение

Помогите мне получить абсолютный путь к папке "Файлы".

4b9b3361

Ответ 1

Я не совсем уверен, что вы пытаетесь сделать, поэтому я попытаюсь осветить базы, и, возможно, это поможет.

  • Если вы просто пытаетесь получить список своих активов, то используйте getAssets().list("Files"). (Вы должны использовать подкаталог, из-за этого).

  • Если вы пытаетесь получить абсолютный путь к вашему каталогу активов (или любой подкаталог), вы не можете. Что бы ни было в каталоге активов находится в APK. Это не во внешнем хранилище, как на SD-карте.

  • Если вы пытаетесь открыть файлы в каталоге ресурсов, используйте AssetManager.open(filename), чтобы получить InputStream. Вот, filename должен быть относительным путем из каталога ресурсов.


ИЗМЕНИТЬ

Я не уверен, что вы подразумеваете под "массивным", но если вы хотите загрузить файл black.png из активов вместо SD-карты, напишите это:

// must be called from Activity method, such as onCreate()
AssetManager assetMgr = this.getAssets();
mColors = new Bitmap[] {
    BitmapFactory.decodeStream(assetMgr.open("black.png"));
    // and the rest
};

Ответ 2

Активы хранятся в файле APK, поэтому нет абсолютного пути, который может использовать ваше приложение. Но я бы предложил посмотреть файл:///android_asset. Это может удовлетворить ваши потребности. Вот хороший пример о том, как отображать Asset в WebView.