簡體   English   中英

如何從資產中獲取文件夾?

[英]How to get folder from assets?

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

上面的代碼可以將存儲卡中的文件夾作為文件。 然后,我使用File類來獲取文件夾中的文件。

如何從資產中獲取文件夾作為File對象?

沒有“資產文件夾中現有文件的絕對路徑”。 您可以使用以下代碼從資產文件夾中獲取詳細信息,

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

嘗試如下:

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();
        }

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM