android - 如何获取应用包中Android assets文件夹的路径

标签 android

我有一个完整的文件夹结构,我想从我的 Assets 文件夹中复制。但是,mContext.getAssets().open() 似乎只需要一个文件名,以便它可以返回一个 InputStream,它只适用于复制单个文件。我需要的是一个由我的 Assets 文件夹中的文件夹制作的文件,以便我可以递归所有文件和文件夹并将它们全部复制。

有人知道如何获取 assets 文件夹的路径以便我可以创建 File 对象吗?

编辑:经过一些研究,您似乎无法使用绝对路径访问 assets/和 raw/文件夹中的文件,从而能够创建 File 对象。它可能与应用程序包的加密有关。我希望有人能证明我错了!

最终编辑:我最终创建了一个字符串数组来保存额外的 Assets 文件:

   private static final String[] DEFAULT_ALBUM_FILES =
   {INTRO_TO_FLASHUM_DIR+"03 Never Can Say Goodbye.m4a",
    INTRO_TO_FLASHUM_DIR+"11 Bossa Baroque.m4a",
    INTRO_TO_FLASHUM_DIR+"intro fling.3gp"};

然后,我使用 mContext.getAssets().open() 逐个复制每个文件以获取 InputStream。我认为目前无法使用正常的文件操作遍历 Assets 中的文件夹。

最佳答案

AssetManager am = con.getAssets();//u have get assets path from this code
InputStream inputStream = null;         
inputStream = am.open("file.xml");

String file_name="ur.xml"    
inputStream = am.open("foldername/"+ur);

关于android - 如何获取应用包中Android assets文件夹的路径,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5860873/

相关文章:

android - 使用 paypal sdk : PaymentActivity class issue 将 Paypal 集成到 android 应用程序

java - 如何从 RAW 文件夹而不是 SDCARD 加载 mp3 文件

java - 使用 AsyncTask 下载文件时崩溃

android - 将按钮添加到 expendableListView 作为最后一个子项

Android-按下后退按钮时如何关闭进度对话框

java - kotlin 中的 supportFragmentManager.commit 不起作用

java - 可观察不重复

Android Moto Droid 相机每次在拍照时都会挂起

java - Gradle 构建错误地失败,因为 "@Override method does not override method from superclass"

Fragment 内的 Android 共享首选项不起作用 - Kotlin