删除文件夹的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("删除成功~");
    }    
}//:~

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

时间: 2024-08-26 03:34:33

删除文件夹的java类的相关文章

java 删除文件夹中的所有内容而不删除文件夹本身的实例_java

实例如下: package com.xx; import java.io.File; public class Test { public static void main(String[] args) { String fileRoot = "C:/Users/xx/Desktop/xx/xxx"; delFolder(fileRoot); System.out.println("deleted"); } // // 删除完文件后删除文件夹 // // param

android-Android里删除文件夹下的数据

问题描述 Android里删除文件夹下的数据 通过遍历本地文件夹,把存在本地文件夹下的视频文件读取出来,然后通过代码如何删除 解决方案 你获取文件夹的路径,.然后遍历子文件,通过倒序删除就行了. 解决方案二: File就可以干这个事了,它有delete方法file.delete() 解决方案三: 在android模拟器里删除文件夹用java删除文件夹里的所有文件 解决方案四: 2楼正解,如果是SDCard要添加相应的权限

Java中实现复制文件到文件,复制文件到文件夹,复制文件夹到文件,删除文件,删除文件夹,移动文件,移动文件夹的工具类

package cn.edu.hactcm.cfcms.utils; import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; import java.util.ArrayList; import java.util.Date; import java.util.List; import javax.swing.JOptionPane; /**  * CFMS :Computer f

用Java删除文件夹里的所有文件

import java.io.File; public class Test { public static void main(String args[]){ Test t = new Test(); delFolder("c:/bb"); System.out.println("deleted"); } //删除文件夹 //param folderPath 文件夹完整绝对路径 public static void delFolder(String folderP

java实现读取、删除文件夹下的文件

  本文给大家分享的是java实现读取.删除文件夹下的文件,其中File.delete()用于删除"某个文件或者空目录"!所以要删除某个目录及其中的所有文件和子目录,要进行递归删除,有需要的小伙伴可以参考下. java实现读取.删除文件夹下的文件 ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43

java实现读取、删除文件夹下的文件_java

java实现读取.删除文件夹下的文件 package test.com; import java.io.File; import java.io.FileNotFoundException; import java.io.IOException; public class ReadFile { public ReadFile() { } /** * 读取某个文件夹下的所有文件 */ public static boolean readfile(String filepath) throws Fi

java删除文件夹下所有文件示例分享_java

复制代码 代码如下: package org.sw; import java.io.File; public class DeleteFolder {     /**     * 删除文件夹下的所有文件     * @param oldPath     */    public void deleteFile(File oldPath) {          if (oldPath.isDirectory()) {           System.out.println(oldPath + "

三款java删除文件夹实现方法

三款java删除文件夹实现方法第一款可以删除文件夹以及文件夹下的子目录与文件 ,后面两个实例只能删除文件夹了. import java.io.file; private void deletefile(file file){    if(file.exists()){     if(file.isfile()){      file.delete();     }else if(file.isdirectory()){      file files[] = file.listfiles();

Java删除文件夹和文件

1 验证传入路径是否为正确的路径名private static String matches = "[A-Za-z]:\\\\[^:?\"><*]*";  // 正则表达式,通过sPath.matches(matches)判断   2 通用删除方法,直接调用此方法,即可实现删除文件夹或文件,包括文件夹下的所有文件public boolean DeleteFolder(String sPath) {      flag = false;      file = ne