2014-05-10 5 views
0

Je travaille actuellement sur une application, et j'ai des données que je veux charger dans mon application à partir d'un dossier appelé "tests". J'ai créé ce dossier dans Eclipse juste dans le répertoire de mon application, donc à côté de/res et/bin et ainsi de suite.Dossiers dans les applications Android

Maintenant, je veux accéder à ce dossier à partir de mon application. Mais je n'ai aucun progrès. Ce que je ne recevais à ce jour mon chemin d'application avec:

testPath = getApplicationInfo().dataDir; 

Mais dans ce répertoire, il n'y a que deux sous-dossiers appelés « lib » et « cache ». Où puis-je trouver mon dossier "tests"?

+2

le mettre dans res/actifs ou res/premières. Voir les classes AssetManager et Resources. –

+0

N'y a-t-il pas d'autre moyen? Je veux juste dire que je veux lire un dossier. Dois-je vraiment utiliser AssetManager? – PKlumpp

+1

Les dossiers de votre projet Eclipse ne deviennent pas des dossiers sur le périphérique. Ils deviennent des ressources à l'intérieur de votre apk, similaire à une ressource dans un fichier JAR exécutable. Pourquoi la résistance à l'utilisation d'AssetManager? Il vous donne un InputStream comme le ferait un fichier. –

Répondre

1

Vous pouvez suivre comme ceci:

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

Si vous pouvez les détails au sujet de cette

Read file from Assets

un autre tutoriel Open & Read File from Assets

Questions connexes