zoukankan      html  css  js  c++  java
  • Java:<获取>、<删除>指定文件夹及里面所有文件

     工具类代码如下:

    一、获取

    public Class Test{
    
        //定义全局变量,存放所有文件夹下的文档
        List<String> fileList ;
        
        public List<String> getFileLists() {
            
            String path = "路径";
            //用的时候再new,相当于用之前清空一下List
            fileList = new ArrayList<String>();
            
            List<String> list = getFileListsByPath(path);
            
            return list;
        }
        
        public List<String> getFileListsByPath(String path) {
            
            File file = new File(path);
            if(file.exists()){
                File[] files = file.listFiles();
                for(File file2 : files){
                    //若是文件夹,递归调用,往下继续遍历
                    if(file2.isDirectory()){
                        //遍历子文件夹的绝对路径下的所有文件
                        getFileListsByPath(file2.getAbsolutePath());
                    }else{
                        //若是文档,非文件夹,加入List
                        fileList.add(file2.getAbsolutePath());
                    }
                }
                
            }
            return fileList;
            
        }
        
    }

    二、删除

    /*
     * 删除指定文件夹及里面所有文件
     */
    import java.io.File;
    
    
    public class RemoveDirectoryUtil {
    
        //获得绝对路径:/D:/eclipse/workspace/项目名称/WebContent/WEB-INF/classes/
        public final static String HOME_PATH = RemoveDirectoryUtil.class.getResource("/").getPath();
        //获得绝对路径:/D:/eclipse/workspace/项目名称/WebContent/下的其他目录
        public final static String FILE_PATH = HOME_PATH.subSequence(0, HOME_PATH.indexOf("WEB-INF")) + "file/";
        
    
        //删除文件夹
        //param folderPath 文件夹完整绝对路径
    
        public static void delFolder(String folderPath) {
             try {
                 delAllFile(folderPath); //删除完里面所有内容
                 String filePath = folderPath;
                 filePath = filePath.toString();
                 java.io.File myFilePath = new java.io.File(filePath);
                 myFilePath.delete(); //删除空文件夹
             } catch (Exception e) {
                 e.printStackTrace(); 
             }
        }
             
        //删除指定文件夹下所有文件
        //param path 文件夹完整绝对路径
           public static boolean delAllFile(String path) {
               boolean flag = false;
               File file = new File(path);
               if (!file.exists()) {
                 return flag;
               }
               if (!file.isDirectory()) {
                 return flag;
               }
               String[] tempList = file.list();
               File temp = null;
               for (int i = 0; i < tempList.length; i++) {
                  if (path.endsWith(File.separator)) {
                     temp = new File(path + tempList[i]);
                  } else {
                      temp = new File(path + File.separator + tempList[i]);
                  }
                  if (temp.isFile()) {
                     temp.delete();
                  }
                  if (temp.isDirectory()) {
                     delAllFile(path + "/" + tempList[i]);//先删除文件夹里面的文件
                     delFolder(path + "/" + tempList[i]);//再删除空文件夹
                     flag = true;
                  }
               }
               return flag;
             }
        
    }

    获取文件所在路径:

    RemoveDirectoryUtil.FILE_PATH

    (根据需要修改即可)

    最后

    只需要在方法里调用即可:

    RemoveDirectoryUtil.delFolder("你的文件夹所在路径");
  • 相关阅读:
    npm install node-echarts npm ERR! code ELIFECYCLE
    MySql-Proxy之多路结果集归并
    Error: Cannot find module 'is-accessor-descriptor'
    如何在Node.js实现兼容ES6
    perl 自动识别编码,转换编码
    Mixin result declared without body
    Python爬虫入门教程 48-100 使用mitmdump抓取手机惠农APP-手机APP爬虫部分
    unexpected token "indent"
    Radware:上周五美国大规模DDoS攻击是如何发生的
    Radware:上周五美国大规模DDoS攻击是如何发生的
  • 原文地址:https://www.cnblogs.com/Donnnnnn/p/8259367.html
Copyright © 2011-2022 走看看