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);
            }     
        }
    }
  • 相关阅读:
    高进度乘法FFT优化
    Activity的四种加载模式
    异步任务AsyncTask
    利用Handler在子线程中更新UI
    Android 屏幕旋转监听
    HDOJ-1698-线段树成段更新
    HDOJ-1671-字典树
    HDOJ-1251 字典树
    python数据结构与算法
    find the lowest number location
  • 原文地址:https://www.cnblogs.com/mylqm/p/14292484.html
Copyright © 2011-2022 走看看