2014-05-10 171 views
0

我目前正在開發一款應用程序,並且我有一些數據要從名爲「tests」的文件夾加載到我的應用程序中。我在Eclipse中創建了這個文件夾,只是在我的應用程序的目錄中,所以在/ res和/ bin等等旁邊。Android應用程序中的文件夾

現在我想從我的應用程序訪問此文件夾。但我沒有任何進展。我做了什麼,到目前爲止是讓我的應用程序的路徑有:

testPath = getApplicationInfo().dataDir; 

但是在這個目錄中,只有2子文件夾名爲「LIB」和「緩存」。我在哪裏可以找到我的「測試」文件夾?

+2

細節將其放在RES /資產或RES /生。請參閱AssetManager和資源類。 –

+0

有沒有別的辦法?我的意思是,我只想讀一個文件夾。我真的必須使用AssetManager嗎? – PKlumpp

+1

您的Eclipse項目中的文件夾不會成爲設備上的文件夾。它們成爲apk內的資源,類似於J2SE可執行jar內的資源。 爲什麼抵制使用AssetManager?它爲您提供了一個InputStream,就像File一樣。 –

回答

1

您可以按照這樣的:

public class ReadFileAssetsActivity extends Activity { 

    /** Called when the activity is first created. */ 

    @Override 
    public void onCreate(Bundle savedInstanceState) { 

     super.onCreate(savedInstanceState); 
     setContentView(R.layout.main); 

     TextView txtContent = (TextView) findViewById(R.id.txtContent); 
     TextView txtFileName = (TextView) findViewById(R.id.txtFileName); 
     ImageView imgAssets = (ImageView) findViewById(R.id.imgAssets); 

     AssetManager assetManager = getAssets(); 

     // To get names of all files inside the "Files" folder 
     try { 
      String[] files = assetManager.list("Files"); 


      loop till files.length 

      { 
       txtFileName.append("\n File :"+i+" Name => "+files[i]); 
      } 


     } catch (IOException e1) { 
      // TODO Auto-generated catch block 
      e1.printStackTrace(); 
     } 

     // To load text file 
     InputStream input; 
     try { 
      input = assetManager.open("helloworld.txt"); 

      int size = input.available(); 
      byte[] buffer = new byte[size]; 
      input.read(buffer); 
      input.close(); 

      // byte buffer into a string 
      String text = new String(buffer); 

      txtContent.setText(text); 
     } catch (IOException e) { 
      // TODO Auto-generated catch block 
      e.printStackTrace(); 
     } 

     // To load image 
     try { 
      // get input stream 
      InputStream ims = assetManager.open("android_logo_small.jpg"); 

      // create drawable from stream 
      Drawable d = Drawable.createFromStream(ims, null); 

      // set the drawable to imageview 
      imgAssets.setImageDrawable(d); 
     } 
     catch(IOException ex) { 
      return; 
     } 
    } 
} 

如果你能對這個

Read file from Assets

另一個教程Open & Read File from Assets

相關問題