因工作需要自行编写写的一个删除无限子文件夹/目录/文件的算法,提供给大家,希望多多指教,算法采用树形结构,节点存放于sons:ArrayList中节点类
class Node{
ArrayList sons;
File dir;
Node(){
sons=new ArrayList();
dir=null;
}
};文件控制方法
   void delF(String dir,Node N){
  try{
File file = new File(dir);
String[] LIST=file.list();
File TP=null;
for(int i=0;i<LIST.length;i++){
if(dir.endsWith(File.separator))
TP=new File(dir+LIST[i]);
else
TP=new File(dir+File.separator+LIST[i]); if(TP.isFile()) TP.delete();
if(TP.isDirectory()){
Node node=new Node();
node.dir=TP;
N.sons.add(node);
this.delF(dir+File.separator+LIST[i],node);
}
}
      }catch(Exception e){System.out.println(e+"A:");}
   }   void delN(Node N){
  ArrayList A=N.sons;
  System.out.println("X:"+A.size());
  try{
for(int i=0;i<A.size();i++){
Node node=(Node)A.get(i);
            //A.remove(node);
this.delN(node);
node.dir.delete();
}
      }catch(Exception e){System.out.println(e+" B");}
   }//delN调用(dir为删除文件夹路径,完全路径,delAll为是否删除非空文件夹):   public void delete(String dir,boolean delAll) throws IOException {
File file=new File(dir);
if(delAll){
Node ROOT=new Node();
ROOT.dir=file;
delF(dir,ROOT);
delN(ROOT);
file.delete();
    }else{
file.delete();
}