如何获取应用程序包中Android资产文件夹的路径

如何获取应用程序包中Android资产文件夹的路径,android,Android,我有一个完整的文件夹结构,我想从我的资产文件夹复制。但是,mContext.getAssets().open()似乎只需要一个文件名,这样它就可以返回一个InputStream,而InputStream只适合复制单个文件。我需要的是从我的资产文件夹中的文件夹中创建一个文件,这样我就可以在所有文件和文件夹中递归并复制它们 有人知道如何获取资产文件夹的路径以便我可以创建文件对象吗 编辑:经过一些研究后,您似乎无法访问具有绝对路径的资产/和原始/文件夹中的文件以创建文件对象。这可能与应用程序包的加密有

我有一个完整的文件夹结构,我想从我的资产文件夹复制。但是,mContext.getAssets().open()似乎只需要一个文件名,这样它就可以返回一个InputStream,而InputStream只适合复制单个文件。我需要的是从我的资产文件夹中的文件夹中创建一个文件,这样我就可以在所有文件和文件夹中递归并复制它们

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

编辑:经过一些研究后,您似乎无法访问具有绝对路径的资产/和原始/文件夹中的文件以创建文件对象。这可能与应用程序包的加密有关。我希望有人能证明我错了

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

   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。我认为目前不可能使用正常的文件操作遍历资产中的文件夹。

能否将文件夹移动到/raw文件夹?然后你可以使用:

 com.your.package:raw/yourFile
像这样:

int resourceId = context.getResources().getIdentifier("com.your.package:raw/somefile.txt");
File f = new File(context.getResources().openRawResource(resourceId));
这里有人在使用资产文件夹:


使用
file:///android_asset
用于访问资产文件夹,然后您可以始终在那里提供您的子文件夹

AssetManager assetManager = null;   // null ???  Get the AssetManager here.
        AssetFileDescriptor assetFileDescriptor = null;
        try{
           assetFileDescriptor = assetManager.openFd("file:///android_asset/yourfolder/file");
                FileDescriptor fd = assetFileDescriptor.getFileDescriptor();
       } catch (Exception e){}

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

你试过什么?看:是的,这正是我所做的。恐怕我不知道如何使用“file:///android_asset". 你能用“File File=new File(…);”的形式来表示吗?获取assetmanager,获取assetfiledescriptor,从assetfiledescriptor获取filedescriptor。但是你如何将filedescriptor转换为文件呢?David-你得到答案了吗?如果是,请邮寄。这看起来很有希望。我要试一试。我会带着结果回来的。谢谢原始文件夹似乎也不允许绝对路径引用。至少我还没有弄明白……问题是openRawResource()返回一个InputStream,似乎没有办法将后者转换为文件。在你的代码中,我得到了以下错误:构造函数文件(InputStream)未定义。啊,这是因为我简化了这个答案:-)一旦你有了is,你就创建了你的文件,并循环将它输入到文件中。这可能不是最好的例子:但它给了你一个小小的感谢你的帮助。我知道这种将IS转换为文件的技术。但是,如何获取与资产文件夹中的文件夹相对应的文件?从那里,我希望执行一个file.listFiles()来获取该文件夹的内容,并对其进行迭代以复制各个文件。事实上,我必须知道该文件夹的内容并单独复制文件。嗨,有没有办法从InputStream对象获取文件的路径?
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);