Java-IO[实现对目录的遍历以及删除(包含子目录)]
程序员文章站
2022-05-15 08:49:10
...
package kevin.io;
import java.io.File;
public class DeleteDirectory {
public static void main(String[] args) {
DeleteDirectory delDir=new DeleteDirectory();
try {
delDir.listDirectory(new File("test"));
delDir.deleteDirectory(new File("test"));
} catch (Exception e) {
e.printStackTrace();
}
}
/*
* 迭代方式
* 列出dir目录下所有文件(包含子目录)
*/
public void listDirectory(File dir) throws Exception{
if (!dir.exists()) {
throw new Exception(dir+" is not exist");
}
if (!dir.isDirectory()) {
throw new Exception(dir+" is not a directory");
}
File[] files=dir.listFiles();
for(File file: files){
if (file.isDirectory()) {
listDirectory(file);
}
else{
System.out.println(file);
}
}
}
/*
* 迭代方式
* 删除指定目录以及下的所有文件(包含子目录)
*/
public void deleteDirectory(File dir) throws Exception
{
if (!dir.exists())
{
throw new Exception(dir+" is not exist");
}
if (!dir.isDirectory())
{
throw new Exception(dir+" is not a directory");
}
File[] files=dir.listFiles();
if (files!=null && files.length>0)
{
for(File file: files){
if (file.isDirectory())
{
deleteDirectory(file);
}
else
{
System.out.println("即将删除的文件名称:"+file);
if (!file.delete())
{
throw new Exception("can not delete the file:"+dir);
}
}
}
System.out.println("即将删除的目录名称:"+dir);
if (!dir.delete())
{
throw new Exception("can not delete the dir:"+dir);
}
}
}
}
上一篇: executeUpdate()返回值
下一篇: SVN删除