2011-06-07 9 views
12

Je construit une application Android sur android 2.2, pour l'enregistrement des fichiers dans la carte SD J'utilise les éléments suivants:getExternalFilesDir alternative android 2.1

context.getExternalFilesDir(null).getAbsolutePath(); 

retourner une chaîne comme:

/mnt/sdcard/Android/data/com.hello.example1/files 

Maintenant, je dois rendre mon application compatible avec android 2.1, quelle méthode dois-je ed à utiliser pour obtenir le répertoire des fichiers externes?


public static String sTellMeWhereToSaveMyData(Context context) 
{ 
     String packageName = context.getPackageName(); 
     File externalPath = Environment.getExternalStorageDirectory(); 
     File appFiles = new File(externalPath.getAbsolutePath() + "/Android/data/" + packageName+ "/"); 

     if (appFiles.exists() && appFiles.isDirectory()) 
     { 
      return appFiles.getAbsolutePath(); 
     } 
     else 
     { 
      if(appFiles.exists()) 
      { 
       Log.v("File Manager","not exists"); 
      } 
      if (!appFiles.mkdir()) 
      { 
       Log.v("File Manager","Could not create"); 
      } 
     } 
     return appFiles.getAbsolutePath(); 
} 

Répondre

20

Vous devez composer le chemin vous:

String packageName = context.getPackageName(); 
File externalPath = Environment.getExternalStorageDirectory(); 
File appFiles = new File(externalPath.getAbsolutePath() + 
         "/Android/data/" + packageName + "/files"); 
+0

vous avez 2 questions ici: 1. il est ** Environment.getExternalStorageDirectory() ** 2. fermer le support après ** + "/ files") ** –

+0

Correction de cela. Je n'ai pas vérifié ce code avec le compilateur. Mais de toute façon, cela aurait dû montrer ce que je voulais dire. – inazaruk

+0

@inazaruk: parfait Je teste tout de suite, je l'ai eu avant de l'éditer, mon commentaire était juste pour le bien des autres personnes qui pourraient faire face au même problème. –