import java.io.*;
class FileDemo
{
public static void main(String[] args)
{
//过滤器
//useMySuffix();
//递归访问文件目录
//File dir = new File("D:\\Java\\workspace");
//getAllFile(dir, 0);
//删除目录及下边的所有文件:
//从里层开始一层一层倒着删除.
File dir = new File("D:\\Java\\workspace\\deleteTestDir");
removeFiles(dir);
}
public static void useMySuffix()
{
File f = new File("c:\\");
String suffix = ".log";
String [] arr = f.list(new SuffixFilter(suffix)); //使用过滤器
//String [] arr = f.list(); //显示所有的文件名(包含隐藏)
for (String s : arr)
{
System.out.println(s);
}
}
//递归获取所有的文件夹及其下边的所有文件.
public static void getAllFile(File dir, int level)
{
//System.out.println(getSpace(level) + dir.getName());
System.out.println(dir.getPath() +"\\");
level++;
File [] f = dir.listFiles();
for (int x = 0; x < f.length; x++)
{
if (f[x].isDirectory())
{
getAllFile(f[x], level);
}
else
//System.out.println(getSpace(level) + f[x].getName());
System.out.println(dir.getPath() +"\\" + f[x].getName());
}
}
public static void removeFiles(File dir)
{
if (dir.exists())
{
File [] f = dir.listFiles();
for (int x = 0; x < f.length; x++)
{
if (f[x].isDirectory())
{
removeFiles(f[x]);
}
else
System.out.println(f[x].getAbsolutePath() + ":" + f[x].delete());
}
System.out.println(dir.getAbsolutePath() + ":" + dir.delete());
}
}
public static String getSpace(int level)
{
StringBuilder s = new StringBuilder();
for (int x = 0; x < level; x++)
{
s.append(" ");
}
return s.toString();
}
}
// 自定义一个文件后缀名过滤器
class SuffixFilter implements FilenameFilter
{
private String suffix;
SuffixFilter(String suffix)
{
this.suffix = suffix;
}
public boolean accept(File dir, String name)
{
return name.endsWith(suffix);
}
}