我的应用包含SD卡中的隐藏文件夹。我想在我的条件(第一次运行)成真时删除该文件夹。
这是我的代码
隐藏文件夹的文件路径
private static final String SET_START_DIRECTORY = Environment.getExternalStorageDirectory().getAbsolutePath() + "/.MYFOLDER/";
方法
private void checkReinstallApp(){
SharedPreferences settings = getSharedPreferences("FIRSTRUN", 0);
boolean firstRun = settings.getBoolean("firstRun", true);
if (firstRun) {
Log.w("activity", "first time");
SharedPreferences.Editor editor = settings.edit();
editor.putBoolean("firstRun", false);
editor.commit();
File f = new File( SET_START_DIRECTORY);
f.delete();
DatabaseHandler db=new DatabaseHandler(WebViewActivity.this);
db.deleteAllDownloads();
} else {
Log.w("activity", "second time");
}
}
此代码的文件f返回true
if(f.exists())
{
Toast.makeText(WebViewActivity.this,"exists",Toast.LENGTH_LONG).show();
}
但文件夹仍在SD卡上,无法从这段代码中删除。我应该更改什么?
答案 0 :(得分:0)
我使用递归删除作为ρяσѕρєяK建议,现在文件夹可以删除。 可以在这里找到递归删除方法。 android-delete-folder-recursively
public static boolean deleteFile(File file) {
if (file != null) {
if (file.isDirectory()) {
String[] children = file.list();
for (int i = 0; i < children.length; i++) {
boolean success = deleteFile(new File(file, children[i]));
if (!success) {
return false;
}
}
}
return file.delete();
}
return false;
}