大部分应用是直接在SDcard 的根目录下创建一个文件夹,然后把数据保存在该文件夹中。

这样当该应用被卸载后,这些数据还保留在SDCard中,留下了垃圾数据。

如果你想让你的应用被卸载后,与该应用相关的数据也清除掉,

通过Context,getExternalFilesDir 方法可以得到SDCard/Android/data/你的应用的包名./files/目录,一般放一些长时间保存的数据。


public abstract File getCacheDir ()

该目录主要用于存放缓存文件,当系统的内存存储空间紧张时,该目录下的文件会被删除掉。关于这些文件究竟会在存储空间剩余多少的情况,没有严格的标准保障。

注意:你不应该依赖系统来清理这些缓存文件,你应该对这些缓存文件占用的最大存储空间设定个最大值,比如是1M,当实际占用空间超过这个值时,你应该对这些缓存文件做相应的清理工作(prune)。

public abstract File getDir (String name, int mode)

该函数主要用于得到一个文件夹的句柄,并通过该句柄创建和访问外文件夹。

public abstract File getFileStreamPath (String name)

返回文件系统上胡绝对路径,其中存储了一个使用openFileOutput(字符串,int) ,创建的文件

public abstract File getFilesDir ()

将绝对路径返回到文件系统上的目录,其中存储了使用openFileOutput(字符串、int)创建的文件。


Environment中关于内存部存储的重要函数

public static File getDataDirectory ()

用File返回数据文件的根目录,返回的文件的路径为“/data”。该目录下的文件是只读。应用程序无法对该目录下的文件进行写操作。



public static File getDownloadCacheDirectory ()
用File返回缓存文件的根目录,返回的文件的路径为“/cache”。对于第三方应用程序。该目录下的文件是只读。第三方应用程序无法对该目录下的文件进行写操作。
public static File getRootDirectory()
用File返回Android系统文件的根目录,返回的文件的路径为“/system”。该目录下的文件是只读。应用程序无法对该目录下的文件进行写操作。