|
|
闲来无事,写了个删除文件夹的java类 |
|
|
作者:未知 来源:月光软件站 加入时间:2005-6-5 月光软件站 |
作完了设计,闲来无事,同学问我怎么删除文件夹(她的设计是jsp作购物网站),于是就写了个java类File继承自java.io.File,以下是代码,第一这么写,同学们不要见笑,呵呵 /** * @author www.nwu.edu.cn MiniRice * @author darkrice@gmail.com * @version 1.2 * */
package cn.edu.nwu.io;
import java.util.*;
public class File extends java.io.File {
File(java.io.File file,String str){ super(file,str); } File(String str1,String str2){ super(str1,str2); } File(String str){ super(str); } File(java.net.URI uri){ super(uri); } public static void deleteDirs(java.io.File dir)throws Exception{ m_root=dir; m_dirs= new ArrayList(); if(!m_root.isDirectory()){ throw new Exception("Exception:\""+m_root.toString()+"\" is not a director"); } else{ for(int i=0;i<m_dirs.size();i++){ System.out.println(((File)m_dirs.get(i)).toString()); } //delete all director try{ m_dirs.add(m_root); myDelete(); } catch(Exception e){ e.printStackTrace(); } } } /** * * @param dirPath String a director file path; * @throws IOException if dirPath is not a director file path */ public static void deleteDirs(String dirPath)throws Exception{ m_root=new java.io.File(dirPath); deleteDirs(m_root); } public static void deleteSubDirs(String dirPath)throws Exception{ m_root=new java.io.File(dirPath); deleteSubDirs(m_root); } public static void deleteSubDirs(java.io.File dir)throws Exception{ m_root=dir; m_dirs= new ArrayList(); //deleteDirs(m_root); if(!m_root.isDirectory()){ throw new Exception("Exception:\""+m_root.toString()+"\" is not a director"); } else{ for(int i=0;i<m_dirs.size();i++){ System.out.println(((File)m_dirs.get(i)).toString()); } try{ myDelete(); } catch(Exception e){ e.printStackTrace(); } } } /* * visit all a director and save them in a list */ private static void visitAll(java.io.File tempRoot){ //m_dirs.add(tempRoot); //System.out.println("函数开始处:"+m_dirs.size()); java.io.File[] dirs=tempRoot.listFiles(); if(dirs!=null){ List dirsList=Arrays.asList(dirs); //while(dirsList!=null){ if(dirsList==null){ try{ tempRoot.delete(); } catch(Exception e){ e.printStackTrace(); } } else{ m_dirs.addAll(dirsList); //System.out.println(m_dirs.size()); /* for(int i=0;i<dirs.length;i++){//print dirs System.out.println("NO."+ ++counter+":"+dirs[i].toString()); } */ //System.out.println(m_dirs.size()); for(int i=0;i<dirsList.size();i++){ tempRoot=(java.io.File)dirsList.get(i); visitAll(tempRoot); /* dirs=tempRoot.listFiles(); List dirsList= Arrays.asList(dirs); */ //System.out.println(tempRoot.toString()); } } //return true; //} } } /* * do delete */ private static void myDelete()throws Exception{ //m_dirs.add(m_root); visitAll(m_root); if(m_dirs!=null){ //System.out.println("删除前:"+m_dirs.size()); //System.out.println(m_dirs.size()); for(int i=m_dirs.size()-1;i>=0;i--){ java.io.File f= (java.io.File)m_dirs.remove(i); //File f= (File)m_dirs.get(i); //System.out.println(f.toString()); String fileName=f.toString(); if(!f.delete()){ throw new Exception("Exception: delete file "+ fileName+" false!"); //System.out.println("删除文件/文件夹"+fileName+"失败!"); } } } else{ throw new Exception("Exception: read file list of "+m_root.toString()+"false!"); //System.out.println("ArrayList==null"); } } /* * root director */ private static java.io.File m_root; private static ArrayList m_dirs; //private static int counter=0;
public static void main(String[] args) {//测试类 File file =new File("J:/毕业设计/测试类/测试文件"); try{ File.deleteDirs("J:/毕业设计/测试类/测试文件"); //File.deleteDirs(file); //File.deleteSubDirs("J:/毕业设计/测试类/测试文件"); //File.deleteSubDirs(file); //File f=new File("F:/test.txt"); //f.delete(); } catch(Exception e){ e.printStackTrace(); } System.out.println("删除成功~"); } }//:~
完毕,问题倒是不难,就是第一尝试用继承和异常。

|
|
相关文章:相关软件: |
|