Android以编程方式删除隐藏文件夹(“.FOLDERNAME”)

时间:2016-06-15 08:31:00

标签: android

我的应用包含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卡上,无法从这段代码中删除。我应该更改什么?

1 个答案:

答案 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;
}