【发布时间】: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