zoukankan      html  css  js  c++  java
  • Java在服务器下删除文件、删除目录及目录下所有文件失败(file.delete() --> false)

    删除文件或者目录失败可能有两个原因:

    1. 流没有关闭导致文件被占用,从而删除失败

    public String getfilesize(String path,String filename) throws IOException {
        String pathString=path+"\"+filename;
        f=new File(pathString);
        FileInputStream fis=new FileInputStream(f);
        String time=String.valueOf(((double)fis.available() / 1024));
        fis.close();//当时这里没有关闭
        return time.substring(0, time.indexOf(".")+2)+"K";
     }

    2. File.delete()用于删除“某个文件或者空目录”!

      重点是删除的对象是文件和空目录,非空目录要进行递归删除

    /**
     * @ProjectName: test
     * @Package: com.test.utils
     * @ClassName: DeleteDirectory
     * @Author: luqiming
     * @Description:Java中删除文件、删除目录及目录下所有文件
     * @Date: 2021/1/17 16:15
     * @Version: 1.0
     */
    public class DeleteDirectory {
    
        /**
         * 删除空目录
         * @param dir 将要删除的目录路径
         */
        public static void doDeleteEmptyDir(String dir) {
            boolean success = (new File(dir)).delete();
            if (success) {
                System.out.println("Successfully deleted empty directory: " + dir);
            } else {
                System.out.println("Failed to delete empty directory: " + dir);
            }
        }
    
        /**
         * 递归删除目录下的所有文件及子目录下所有文件
         * @param dir 将要删除的文件目录
         */
        public static boolean deleteDir(File dir) {
            if (dir.isDirectory()) {
                String[] children = dir.list();
                //递归删除目录中的子目录下
                for (int i=0; i<children.length; i++) {
                    boolean success = deleteDir(new File(dir, children[i]));
                    if (!success) {
                        return false;
                    }
                }
            }
            // 目录此时为空,可以删除
            return dir.delete();
        }
    
     /**
         *测试
         */
        public static void main(String[] args) {
            doDeleteEmptyDir("new_dir1");
            String newDir2 = "new_dir2";
            boolean success = deleteDir(new File(newDir2));
            if (success) {
                System.out.println("Successfully deleted populated directory: " + newDir2);
            } else {
                System.out.println("Failed to delete populated directory: " + newDir2);
            }     
        }
    }
  • 相关阅读:
    华为软件开发云评测
    个人技术博客(α)
    结对第二次作业
    结对第一次作业----部门通
    数独设计
    2017软件工程实践第一次作业
    Alpha冲刺博客集
    个人作业——软件工程实践总结作业
    用户使用调查报告
    总结随笔(Beta)
  • 原文地址:https://www.cnblogs.com/mylqm/p/14292484.html
Copyright © 2011-2022 走看看