📄 deletedir.java
字号:
// 例5.2.5 DeleteDir.java
import java.io.*;
import java.util.*;
class DeleteDir
{
public DeleteDir(File dir)
{
if (dir.isDirectory())
{
LinkedList dirs = new LinkedList(); //创建用于存放目录层次的链表
dirs.add(dir); // 添加目录到链表
while (dirs.size() > 0) // 当链表不为空时,循环
{
File currentDir = (File)dirs.getFirst();
File[] files = currentDir.listFiles();
boolean emptyDir = true;
for (int i=0; i<files.length ;i++ )
{
if (files[i].isFile())
{
System.out.println("Deleting..."+files[i].getAbsolu
tePath());
try
{
files[i].delete(); // 删除文件
}catch(SecurityException se){
se.printStackTrace();
}
}
else
{
dirs.addFirst(files[i]);// 将该子目录添加到链表首部
emptyDir = false; // 表明该子目录非空
}
}
if (emptyDir) // 如果子目录为空
{
System.out.println("Deleting..."+currentDir.getAbsolu
tePath());
try
{
currentDir.delete(); // 删除目录
}catch(SecurityException se){
se.printStackTrace();
}
dirs.removeFirst(); // 修改链表
}
}
}
else if (dir.isFile())
System.out.println("Error: "+dir.getName()+" is a file");
else
System.out.println("Error: "+dir.getName()+" is unknown");
}
public static void main(String[] args)
{
File dir = new File(args[0]);
DeleteDir delDir = new DeleteDir(dir);
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -