【问题标题】:Deleting Files and Directories not working删除文件和目录不起作用
【发布时间】:2014-12-24 22:39:23
【问题描述】:

我正在尝试删除目录中的所有文件,然后使用以下代码删除目录,但它似乎不起作用。 (方法运行后文件不会被删除)。

public void DeleteDirectory() {
        ArrayList<File> Directories = new ArrayList<File>();
        Directories.add(new File(Environment.getExternalStorageDirectory().toString().concat("/AssetControl/Images")));
        Directories.add(new File(Environment.getExternalStorageDirectory().toString().concat("/AssetControl/Thumbnails")));

        ListIterator<File> itr = Directories.listIterator();

        while (itr.hasNext()) {
            File dir = itr.next();
                if (dir.isDirectory()) {
                String[] files = dir.list();
                for (int i = 0; i < files.length; i++) {
                    (new File(files[i])).delete();
                    // This is also not working:
                    // File current = new File(files[i]);
                    // current.delete();
                }
                dir.delete();
            }
        }

    }

【问题讨论】:

  • 请使用正确的File 构造函数,而不是字符串连接。除此之外,请解释“它似乎不起作用”是什么意思。
  • 我认为我正在尝试做的事情很明显“删除目录中的所有文件,然后删除目录”(如前所述),但“它”似乎不起作用。我确实使用了正确的文件构造函数和相同的结果没有删除。
  • 当您在调试器中单步执行代码或添加Log.d() 调用以查看代码的哪些部分已执行和未执行时,您学到了什么? “我确实使用了正确的文件构造函数”——不在你问题的代码中。您的第二行和第三行使用concat() 构建文件路径,这是不可靠的。
  • 我通过调试器并正确执行。还有其他建议吗?您建议我使用什么其他选项代替 concat() 来构建文件路径?
  • "我通过了调试器,它执行正确" -- 好的,你如何确定文件是否被删除? DDMS 的文件资源管理器? adb shell?还有什么? “你建议我使用什么其他选项而不是 concat() 来构建文件路径?” -- new File(Environment.getExternalStorageDirectory(), "/AssetControl/Images").

标签: java android directory delete-file


【解决方案1】:

这对我有用: 将 String[] 文件替换为 File[] 文件。

        while (itr.hasNext()) {
            File dir = itr.next();
                if (dir.isDirectory()) {
                File[] files = dir.listFiles();
                for (int i = 0; i < files.length; i++) {
                    DeleteFile(files[i]);
                }
                dir.delete();
            }
        }

【讨论】:

    猜你喜欢
    • 2013-07-31
    • 2016-10-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-01-07
    • 2014-02-03
    • 2017-01-09
    • 2015-04-29
    相关资源
    最近更新 更多