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;

        }



    }

 

你可能感兴趣的:(java)