快精灵印艺坊 您身边的文印专家
广州名片 深圳名片 会员卡 贵宾卡 印刷 设计教程
产品展示 在线订购 会员中心 产品模板 设计指南 在线编辑
 首页 名片设计   CorelDRAW   Illustrator   AuotoCAD   Painter   其他软件   Photoshop   Fireworks   Flash  

 » 彩色名片
 » PVC卡
 » 彩色磁性卡
 » 彩页/画册
 » 个性印务
 » 彩色不干胶
 » 明信片
   » 明信片
   » 彩色书签
   » 门挂
 » 其他产品与服务
   » 创业锦囊
   » 办公用品
     » 信封、信纸
     » 便签纸、斜面纸砖
     » 无碳复印纸
   » 海报
   » 大篇幅印刷
     » KT板
     » 海报
     » 横幅

删除文件夹的java类

/**
 * @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(\"删除成功~\");
    }    
}//:~

完毕,问题倒是不难,就是第一尝试用继续和非常。 




返回类别: 教程
上一教程: 利用 Java Web Start发布你用java程序
下一教程: 我了解的javaIDE浅析

您可以阅读与"删除文件夹的java类"相关的教程:
· 使用递归方式删除文件
· 如何用java拷贝本地文件夹
· java 文件操作大全
· Java的文件操作--2(Zip文件释放)
· JAVA文件读取路径问与答
    微笑服务 优质保证 索取样品