至余 2016-11-14 10:58 采纳率: 100%
浏览 1351
已采纳

我用java写的深层删除D盘下所有空文件夹代码为什么老是报错呢?

public Class DeleteDir{
public static void main(String[]args){
File dir = new File("D:\");
deletedir(dir);
}

    public static void deletedir(File dir){
    File[] files = dir.listFiles();
        if(files.length==0)
                dir.delete;
        else
            for(File file:files){
                    if(file.isDirectory())
                            deletedir(file);
                    else
                            continue;
            }
    }

}

图片说明
功能上确实把一些空文件夹删除了,我也没去看有没有全部删除,但是运行一段时间之后会在判断数组长度是否为0那里报错。这是为什么呢?是因为系统文件或其他什么的权限不够吗?

  • 写回答

2条回答 默认 最新

  • _1_1_7_ 2016-11-15 09:16
    关注

    多看看api文档,就知道了

     listFiles
    public File[] listFiles()返回一个抽象路径名数组,这些路径名表示此抽象路径名所表示目录中的文件。 
    如果此抽象路径名并不表示一个目录,则此方法将返回 null。否则,为目录中的每个文件或目录返回一个 File 对象数组。表示目录本身及其父目录的路径名不包括在结果中。得到的每个抽象路径名都是根据此抽象路径名,使用 File(File, String) 构造方法构造。所以,如果此路径名是绝对路径名,则得到的每个路径名都是绝对路径名;如果此路径名是相对路径名,则得到的每个路径名都是相对于同一目录的路径名。 
    
    不保证所得数组中的相同字符串将以特定顺序出现,特别是不保证它们按字母顺序出现。 
    
    
    返回:
    表示此抽象路径名所表示目录中的文件和目录的抽象路径名数组。如果目录为空,则数组也将为空。如果抽象路径名不表示一个目录,或者发生 I/O 错误,则返回 null。 
    
      public static void deletedir(File dir){
        File[] files = dir.listFiles();
            if(files==null)return;//如果抽象路径名不表示一个目录,或者发生 I/O 错误,则返回 null。
            if(files.length==0)//空文件夹
                    dir.delete;
            else
                for(File file:files){
                        if(file.isDirectory())
                                delitedir(file);
                        else
                                continue;
                }
        }
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥15 安卓adb backup备份应用数据失败
  • ¥15 eclipse运行项目时遇到的问题
  • ¥15 关于#c##的问题:最近需要用CAT工具Trados进行一些开发
  • ¥15 南大pa1 小游戏没有界面,并且报了如下错误,尝试过换显卡驱动,但是好像不行
  • ¥15 没有证书,nginx怎么反向代理到只能接受https的公网网站
  • ¥50 成都蓉城足球俱乐部小程序抢票
  • ¥15 yolov7训练自己的数据集
  • ¥15 esp8266与51单片机连接问题(标签-单片机|关键词-串口)(相关搜索:51单片机|单片机|测试代码)
  • ¥15 电力市场出清matlab yalmip kkt 双层优化问题
  • ¥30 ros小车路径规划实现不了,如何解决?(操作系统-ubuntu)