处理文件时,经常需要删除目录下的文件或删除整个目录。 在这种情况下,首先考虑File类的delete ) )方法。 以下示例使用delete ) )方法删除文件,如示例所示。 importjava.io.File;
publicclassIOTest{
publicstaticvoidmain (字符串[ ] args ) {
文件文件=new file (d :/test ); //这是表示目录的File对象
if(file.exists () ) )。
system.out.println(file.delete );
}
}
}
执行结果: false
图的执行结果中输出了false。 这表明文件删除失败。 你可能会怀疑为什么失败。 这是因为File类的delete ) )方法只是删除指定的文件(如果File对象表示目录,并且目录下包含子目录或文件,则为File类的delete ) ) 在这种情况下,必须递归删除整个目录和其中的所有文件。 接下来,在一个情况下进行演示,如示例所示。 importjava.io.File;
publicclassIOTest{
publicstaticvoidmain (字符串[ ] args ) {
文件文件=new file (d :/test ); 创建表示//目录的File对象
删除dir (文件; 调用deleteDir删除方法
}
publicstaticvoiddeletedir (filedir ) {
判断是否存在if(dir.exists () ) /传递的File对象
File[]files=dir.listFiles (; 获得File数组
文件文件:文件(for )//浏览所有子目录和文件
if(file.isdirectory () ) )
删除dir (文件; 对于//目录,递归调用deleteDir ()
}else{
//文件时,直接删除
file.delete (;
}
}
//删除一个目录中的所有文件后,删除此目录
dir.delete (;
}
}
}
示例定义删除目录的静态方法deleteDir ) )并接收File类型的参数。 在此方法中,listFiles (调用方法将此目录下的所有子目录和文件保存在一个File类型的数组Files中,然后遍历Files,如果是目录,则为deleteDir ) metrix 删除目录下的所有文件后,删除当前目录将从内到外递归删除整个目录。
需要注意的是,在Java中删除目录是直接从虚拟机中删除而不使用回收站,从而导致文件无法恢复,因此在执行删除操作时必须小心。