2011-12-13 4 views
22

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

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

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

enter image description here

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

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

Look the image

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

+0

[Посмотрите на экран] (http://my.jetscreenshot.com/10682/20111213-pxu2-587kb.jpg) Как создать такой же массивный как «зеленый», но используя файлы из активов, а не sd-card? – Val

ответ

15

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

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

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

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


EDIT

Я не уверен, что вы подразумеваете под «массовым», но если вы хотите, чтобы загрузить файл 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 
}; 
+0

[Посмотрите на экран] (http://my.jetscreenshot.com/10682/20111213-pxu2-587kb.jpg) Как создать такой же массивный, как «зеленый», но используя файлы из активов, а не SD-карты? – Val

1

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

+0

Мне нужен этот путь к папке «Мои файлы», чтобы использовать изображения и звуки из этой папки. Как я могу это сделать, используя этот пример? В нем используется WebView и URL, а не абсолютный путь. – Val

Смежные вопросы