• Java清理临时目录文件Demo(一)


        /**
         * 删除单个文件
         * 
         * @param sPath
         *            被删除文件的文件名
         * @return 单个文件删除成功返回true,否则返回false
         */
        public static boolean deleteFile(String sPath) {
            boolean flag = false;
            File file = new File(sPath);
            // 路径为文件且不为空则进行删除
            if (file.isFile() && file.exists()) {
                file.delete();
                flag = true;
            }
            return flag;
        }
    
        /**
         * @description 扫描指定路径文件夹下所有文件
         * 得到每个文件的创建时间
         * 删除时间在规定时间之前的所有文件deleteFile(array[i].toString());
         * 
         */
        private static void getOtherFile(String path) {
    
            File file = new File(path);
    
            File[] array = file.listFiles();
    
            for (int i = 0; i < array.length; i++) {
    
                if (array[i].isFile()) {
    
                    SimpleDateFormat sf = new SimpleDateFormat("yyyy-MM-dd");
                    
                    Date newtime = null;
    
                    try {
                        newtime = sf.parse(getFileCreateTime(array[i]).replace("/",
                                "-"));
                    } catch (ParseException e) {
                        e.printStackTrace();
                    }
    
                    sf.format(newtime);
                    String currentTime = DateUtil.getCurrentDateTime();
                    String createRealTime = DateUtil.getCurrentDateBeforeDate(
                            currentTime, daynum);
    
    
                    // java 比较时间大小
                    String s1 = sf.format(newtime);//硬盘上文件创建时间
                    String s2 = createRealTime;//指定日期(删除指定日期之前的文件)
                    java.text.DateFormat df = new java.text.SimpleDateFormat(
                            "yyyy-MM-dd");
                    java.util.Calendar c1 = java.util.Calendar.getInstance();
                    java.util.Calendar c2 = java.util.Calendar.getInstance();
                    try {
                        c1.setTime(df.parse(s1));
                        c2.setTime(df.parse(s2));
                    } catch (java.text.ParseException e) {
                        System.err.println("格式不正确");
                    }
                    int result = c1.compareTo(c2);
                    if (result == 0) {
                        // System.out.println("硬盘上文件创建时间   相等   指定日期");
                    } else if (result < 0) {
                        // System.out.println("硬盘上文件创建时间     小于  指定日期(硬盘文件日期在指定日期)");
                        // 当创建时间小于当前规定时间之前时,对文件进行删除操作。
                        deleteFile(array[i].toString());
                    } else {
                        // System.out.println("硬盘上文件创建时间  大于  指定日期");
                        //deleteFile(array[i].toString());
                    }
    
                } else if (array[i].isDirectory()) {
    
                    getOtherFile(array[i].getPath());
    
                }
            }
        }
    
        /**
         * 获取文件创建时间
         * 
         */
    
        public static String getFileCreateTime(File filePath) {
            File file = filePath;
    
            try {
    
                Process ls_proc = Runtime.getRuntime().exec(
    
                "cmd.exe /c dir " + file.getAbsolutePath() + " /tc");
                BufferedReader br = new BufferedReader(new InputStreamReader(
                        ls_proc.getInputStream()));
    
                for (int i = 0; i < 5; i++) {
    
                    br.readLine();
    
                }
    
                String stuff = br.readLine();
    
                StringTokenizer st = new StringTokenizer(stuff);
    
                String dateC = st.nextToken() + " ";
    
                String time = st.nextToken();
    
                String datetime = dateC.concat(time);
    
                br.close();
    
                return datetime;
    
            } catch (Exception e) {
    
                return null;
            }
    
        }
  • 相关阅读:
    建立Azure Dev Ops持续集成和持续交付(CICD)(四、使用 Azure Pipelines 建立CICD)
    建立Azure Dev Ops持续集成和持续交付(CICD)(三、准备好Azure DevOps的帐号并上传代码)
    建立Azure Dev Ops持续集成和持续交付(CICD)(二、准备好ServicePrincipal并配置相应的权限)
    建立Azure Dev Ops持续集成和持续交付(CICD)(一、准备好Azure Web App资源)
    Jquery.Datatable 控件后端分页实例 (后台使用ashx、aspx-webmethod)
    c# 将object尝试转为指定对象
    c# 生成随机数
    http跳转https
    解决sqlserver数据库表空间不自动释放问题
    windowsSevice程序和topshelf程序创建服务对比
  • 原文地址:https://www.cnblogs.com/dreamzhiya/p/4606739.html
Copyright © 2020-2023  润新知