本文简介
Android系统目录主要指的是/data/data/packagename/下的文件夹和文件。系统目录的文件存在形式主要有两种形态,见下图
该图中显示的是系统给出的目录例如:databases的目录为/data/data/com.xxx.xxx/databases,此外还有cache、files、lib、shared_prefs目录下的文件,这些都是系统给出的文件夹。
关于这些文件夹下的文件清理代码如下:
/**
* 清除APP数据
*/
private void clearData() {
// final String path = "/data/data/" + getPackageName().toString();
final String path = getFilesDir().getParent();
//清空配置文件目录shared_prefs;
File file_xml = new File(path + "/shared_prefs");
if (file_xml.exists()) {
File[] files = file_xml.listFiles();
for (int i = 0; i < files.length; i++) {
files[i].delete();
}
}
//清空缓存目录;
File file_cache = getCacheDir();
if (file_cache.exists()) {
File[] files = file_cache.listFiles();
for (int i = 0; i < files.length; i++) {
files[i].delete();
}
}
//清空file目录;
File file_file = new File(path + "/files");;
if (file_file.exists()) {
File[] files = file_file.listFiles();
for (int i = 0; i < files.length; i++) {
files[i].delete();
}
}
//清空数据库目录;
File file_db = new File(path + "/databases");
if (file_db.exists()) {
File[] files = file_db.listFiles();
for (int i = 0; i < files.length; i++) {
files[i].delete();
}
}
系统目录下还有一种文件存放的形态是我们自定义的形式:
//返回的目录为/data/data/com.xxx.xxx/app_lsk
context.getDir("lsk", Context.MODE_PRIVATE).getAbsolutePath();
该种目录下的文件夹不能用file.list()得到相应的文件进行删除,想要清理该文件需要知道具体的文件的名字才可以删除。因此在向该目录中存放目录时需要用数据库记住文件名,然后在遍历删除。