增强for循环递归删除文件夹

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数组中的数据减少的情况才会报错