android - 空目录不在android中删除

标签 android file

谁能说出为什么即使 path.exists() 返回 true 但不执行删除操作,此代码也无法删除空目录。

  @Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    File file = new File(Environment.getExternalStorageDirectory()
            .getAbsolutePath() + "/directoryName");
    boolean isDeleted = deleteDirectory(file);
    System.out.println(isDeleted);
}

static public boolean deleteDirectory(File path) {
    if (path.exists()) {
        System.out.println("MainActivity.deleteDirectory()");
        File[] files = path.listFiles();
        for (int i = 0; i < files.length; i++) {
            if (files[i].isDirectory()) {
                deleteDirectory(files[i]);
            } else {
                files[i].delete();
            }
        }
    }
    return (path.delete());
}

最佳答案

将顺序稍微更改为:

boolean deleteDirectory(File path) {
    if(path.exists()) {
        if (path.isDirectory()) {
            File[] files = path.listFiles();
            for (int i=0; i<files.length; i++) {
                deleteDirectory(files[i]);
            }
        }
        return path.delete();
    }

    return false;
}

并记得声明权限:

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />

关于android - 空目录不在android中删除,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20836905/

相关文章:

android - 简单的Android文件输出问题

android - 错误 : Could not get the Java version. 是否安装了 Java?

Android Mediarecorder setNextOutputFile IllegalStateException

android - 如何在 android 的 Tabwidget 中删除填充或边距?

c# - 文件夹事件中的新文件

python - 'with open(file):'与手动打开/关闭它之间的性能差异

python - 'open("file_path")' and ' with open ("file_path")' in Python 3.8.10有什么区别,哪个最适合使用?

java - 按字读取文件,扫描仪

android - 我怎样才能永远重复过渡?

c - 使用 C 实现哈希表