package ch3;
import java.io.File;
import java.io.IOException;
public class FileText {
public static void main(String[] args) throws IOException {
File dir1= new File("D:/IOText/dir1");
if(!dir1.exists()) dir1.mkdir();
//如果dir1目录怒存在,则创建目录
File dir2= new File(dir1,"dir2");
//创建以dir1为父目录,名为dir2的File对象
if(!dir2.exists()) dir2.mkdirs();//若不存在,则创建为目录
File dir4 = new File(dir1,"dir3/dir4");
if(!dir4.exists()) dir4.mkdirs();
File file = new File(dir2,"text.txt");
if(!file.exists())
file.createNewFile();//若不存在,就创建目录
System.out.println("dir1的绝对路径:"+dir1.getAbsolutePath());
listChilds(dir1,0);//递归显示dir1下的所有文件和目录
deleteAll(dir1);
}
private static void deleteAll(File file) {
// TODO Auto-generated method stub
//如果是文件,就删除
if(file.isFile()){
System.out.println("删除文件:"+file.getAbsolutePath());
file.delete();
return;
}
File []lists = file.listFiles();
//如果是目录,先生拿出目录下的所有子目录和文件
for(int i=0;i<lists.length;i++)
{
deleteAll(lists[i]);
}
System.out.println("删除目录:"+file.getAbsolutePath());
file.delete();
}
private static void listChilds(File file, int level) {
// TODO Auto-generated method stub
//生成层次感的空格
StringBuilder sb = new StringBuilder("|--");
for(int i=0;i<level;i++)
{
sb.insert(0, "| ");
}
File [] childs = file.listFiles();
for(int i=0;i<childs.length;i++)
{
System.out.println(sb.toString()+childs[i].getName());
if(childs[i].isDirectory())
{
listChilds(childs[i],level+1);
}
}
}
}
结果:dir1的绝对路径:D:\IOText\dir1
|--dir2
| |--text.txt
|--dir3
| |--dir4
删除文件:D:\IOText\dir1\dir2\text.txt
删除目录:D:\IOText\dir1\dir2
删除目录:D:\IOText\dir1\dir3\dir4
删除目录:D:\IOText\dir1\dir3
删除目录:D:\IOText\dir1