android 2.1中的getExternalFilesDir替代方案

Ahm*_*ali 12 java android android-2.1-eclair

我在android 2.2上构建了一个Android应用程序,用于将文件保存到SD卡中我使用以下内容:

 context.getExternalFilesDir(null).getAbsolutePath();
Run Code Online (Sandbox Code Playgroud)

返回一个字符串,如:

 /mnt/sdcard/Android/data/com.hello.example1/files
Run Code Online (Sandbox Code Playgroud)

现在我需要让我的应用程序与android 2.1兼容,我需要使用什么方法来获取外部文件目录?


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();
}
Run Code Online (Sandbox Code Playgroud)

ina*_*ruk 20

你应该自己组成路径:

String packageName = context.getPackageName();
File externalPath = Environment.getExternalStorageDirectory();
File appFiles = new File(externalPath.getAbsolutePath() +
                         "/Android/data/" + packageName + "/files");
Run Code Online (Sandbox Code Playgroud)

  • 谢谢:)另请注意,在Android 2.1(及更低版本)上,如果卸载应用程序,则此文件夹可能不会被删除. (2认同)