public static void main(String[] args) {
File deleteDir = new File("sectect/fff");
delete(deleteDir);
}
public static void delete(File deleteDir){
File[] files = deleteDir.listFiles();
if(files!=null) {
for (File fileOrDir : files) {
if (fileOrDir.isFile()) {
fileOrDir.delete();
}else if(fileOrDir.isDirectory()){
delete(fileOrDir);
}
}
}
deleteDir.delete();
}
使用增强for循环递归删除文件数组,采用每个文件的删除方法,虽然不是调用数组对某个元素的删除方法,但是也算这个数组少了某个元素,应该也是会有索引错误的问题,但是这样子确实可以删除文件夹,不能理解,求解答!
File[] files = deleteDir.listFiles();
这个数组files内容就没变过,
哪句话写了修改这个数组元素内容?
因为你前面已经把改变前的listfiles存起来了,之后再删除文件不会改变files里存放的值,所以可以直接用增强for去做,不需要while
有帮助望采纳
只是调用了删除文件操作,files数组中的数据没有发生变化,所以代码是不会报错的
for循环只有在files数组中的数据减少的情况才会报错