我想用环境变量替换一个上下文方法 但不确定它们是否意思相同。
之间有什么区别
getFilesDir()
和Environment.getDataDirectory()
?
如何使用data\data
从data\data\com.Myapp
获取Environment Variable
?
答案 0 :(得分:36)
公共文件getFilesDir()
返回文件系统上存储用openFileOutput(String, int)
创建的文件的目录的绝对路径。
public static File getExternalStorageDirectory()
返回主外部存储目录。如果用户已在其计算机上安装此目录,已从设备中删除或发生其他一些问题,则该目录当前可能无法访问。您可以使用getExternalStorageState()
确定其当前状态。
注意:不要在这里混淆“外部”这个词。此目录最好被视为媒体/共享存储。它是一个文件系统,可以容纳相对大量的数据,并在所有应用程序之间共享(不强制执行权限)。传统上这是一张SD卡,但它也可以作为内置存储器实现,该设备不同于受保护的内部存储器,可以作为文件系统安装在计算机上。
在具有多个用户的设备上(如UserManager所述),每个用户都有自己独立的外部存储。应用程序只能访问正在运行的用户的外部存储。
如果您想要使用getFilesDir()
获取应用程序路径,则会为您提供路径/data/data/your package/files
您可以使用
使用Environment
的{{1}} var来获取路径
data/package
将从外部存储的根目录返回路径
getExternalFilesDir(Environment.getDataDirectory().getAbsolutePath()).getAbsolutePath();
要访问外部资源,您必须在清单中提供/storage/sdcard/Android/data/your pacakge/files/data
和WRITE_EXTERNAL_STORAGE
的权限。
READ_EXTERNAL_STORAGE
答案 1 :(得分:12)
Enironment返回用户数据目录。 getFilesDir会返回应用程序数据目录。
答案 2 :(得分:0)
<强> getFilesDir() 强>
返回文件系统上目录的绝对路径,其中存储使用openFileOutput(String,int)创建的文件。
<强> Environment.getDataDirectory() 强>
返回用户数据目录。
答案 3 :(得分:-1)
试试这个
getExternalFilesDir(Environment.getDataDirectory().getAbsolutePath()).getAbsolutePath()