如何从资产中获取文件夹?

时间:2014-02-12 12:36:26

标签: android android-file android-assets

File directory = new File(android.os.Environment.getExternalStorageDirectory()+ File.separator+"folder");

上述代码可以将存储卡中的文件夹作为文件获取。然后我使用File类来获取文件夹中的文件。

如何从资产中获取File对象的文件夹?

2 个答案:

答案 0 :(得分:0)

没有“资产文件夹中存在的文件的绝对路径”。您可以使用以下代码从资源文件夹中获取详细信息,

uri = Uri.fromFile(new File("//assets/aaa/aaa.txt"));

答案 1 :(得分:0)

试试如下:

AssetManager am = getAssets();
InputStream inputStream = am.open(file:///android_asset/foldername/filename);
File file = createFileFromInputStream(inputStream);

private File createFileFromInputStream(InputStream inputStream) {

   try{
      File f = new File(my_file_name);
      OutputStream outputStream = new FileOutputStream(f);
      byte buffer[] = new byte[1024];
      int length = 0;

      while((length=inputStream.read(buffer)) > 0) {
        outputStream.write(buffer,0,length);
      }

      outputStream.close();
      inputStream.close();

      return f;
   }catch (IOException e) {
         //Logging exception
   }

return null;
}

使用以下代码将Assets文件夹和文件转换为字符串数组。

     final AssetManager assetManager = getAssets();
        try {
            // for assets folder add empty string
                        String[] filelist = assetManager.list("");
                        // for assets/subFolderInAssets add only subfolder name
                        String[] filelistInSubfolder = assetManager.list("subFolderInAssets");
            if (filelist == null) {
                // dir does not exist or is not a directory
            } else {
                for (int i=0; i<filelist.length; i++) {
                    // Get filename of file or directory
                    String filename = filelist[i];
                }
            }
        } catch (IOException e) {
            e.printStackTrace();
        }