博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
序列号
阅读量:6235 次
发布时间:2019-06-22

本文共 3435 字,大约阅读时间需要 11 分钟。

09standy225aaabdCdjDgDABBfaahFaagbaaaEaahFaaeAaadaaafhaacAaacfaadBaahaaaahaaaeaaeFaadhaafcaafhaacdaafiaacDaahdaahaaahh

 

java题:

输入

       1:文件路径:String类型,指定的目标文件路径,

       2:排序方法:boolean类型,true代表正序,False代表倒序,用以确定是保留早期的文件或者最近的文件(依赖于文件命名)

       3:文件删除方式:char类型,保留文件遵照的方式:D(或d)代表按日期保留,N(或n)代表按文件数量保留

       4:最大可保留数量:int类型,如果sDelType输入的类型为N/n,则表示为需要保留的文件夹个数;如果sDelType输入的类型为D/d,则表示需要保留的符合某几种日期形式种类的所有文件

       5:匹配关键字:String类型,特征关键字,用于匹配识别该文件是否应被删除:匹配则不删除,不匹配则删除

 

输出:

       打印出需处理路径下的所有文件名称清单,同时打印出删除的所有文件清单,以及删除后保留的文件清单。

 

要求

       1:使用Java语言进行开发,以命令行形式作为输入形式。

       2:需严格按照编程规范进行代码编写,需有异常处理机制,有错误需打印错误日志,可自行定义错误码类别。

       如:文件删除失败,提示“Error 111:deletefile Exception:e.getMessage()“

              用户键入信息出错,如路径不存在,提示“Error101:file ‘d:\\helloworld’  doesn’t  exist“

       3:目标路径下文件命名统一按照格式(格式为:YYYY-MM-DD,如20121022)命名

 

  //所有对象

    private static HashMap<String,String> allObj = new HashMap<String,String>();
    //要删除的对象
    private static HashMap<String,String> removeObj = new HashMap<String,String>();
    //要保留的对象
    private static HashMap<String,String> remainObj = new HashMap<String,String>();
    /**
     * 实现文件名排序
     * @param mode:true代表正序,False代表倒序
     * @param directoryPath 指定的目标文件路径
     * @param keyWord 过滤关键字
     */
    public static void FileSort(final boolean mode, String directoryPath, String keyWord)
    {
        List<File> files = Arrays.asList(new File(directoryPath).listFiles());
        Collections.sort(files, new Comparator<File>()
        {
            @Override
            public int compare(File o1, File o2)
            {
                if (o1.getName().compareTo(o2.getName()) > 0)
                {
                    if (!mode) //升序
                        return -1;
                    return 1;
                }
                else if (o1.getName().compareTo(o2.getName()) < 0)
                {
                    if (mode) //升序
                        return -1;
                    return 1;
                }
                else
                    return 0;
                //return o1.getName().compareTo(o2.getName());
            }
        });
        for (File f : files)
        {
            if (f.getName().indexOf(keyWord)!=-1)
            {
                remainObj.put(f.getName(), f.getAbsolutePath());
            }else {
                allObj.put(f.getName(),f.getAbsolutePath());
            }
            
            System.out.println(f.getName());
        }
    }
    /**
     * 根据路径删除指定的目录或文件
     * @param directoryPath 要删除的目录或文件
     * @return 删除成功返回 true,否则返回 false。
     */
    public static boolean DeleteFile(String directoryPath)
    {
        File f = new File(directoryPath);
        if (f.exists())
        {
            if (f.isFile())
                return f.delete();
            else if (f.isDirectory())
            {
                File[] files = f.listFiles();
                for (File file : files)
                {
                    if (!DeleteFile(file.getAbsolutePath()))
                        return false;
                }
                return f.delete();
            }
            else
                return false;
        }
        else
        {
            System.out.println("Error101:the path or the file \"" + directoryPath + "\" doesn’t  exist");
            return false;
        }
    }
    /**
     * 保留文件夹
     * @param way 保留方式
     * @param maxNum 最大保留个数
     * @param allObj 所有对象
     */
    public static void RemainObj(char way, int maxNum, List<String> allObj)
    {
        String way_temp = String.valueOf(way).toLowerCase();
        if (way_temp == "d")
        {
        }
        else if (way_temp == "n")
        {
        }
        else
        {
        }
    }
    /**
     * 验证输入
     * @param args 输入参数字符串数组
     * @return 输入有误返回false,输入无误返回true
     */
    public static boolean ValidateInput(String[] args)
    {
        File f = new File(args[0]);
        if (!f.exists())
        {
            return false;
        }
        else if (args[1].toLowerCase() != "true" || args[1].toLowerCase() != "false")
        {
            return false;
        }
        else if (args[2].toLowerCase() != "d" || args[1].toLowerCase() != "n")
        {
            return false;
        }
        else
        {
            return true;
        }
    }
    public static void main(String[] args)
    {
//        if (ValidateInput(args))
//        {
//            FileSort(true, "C:\\Users\\muye\\Desktop\\javatest","aa");
//            for (int i = 0; i < allObj.size(); i++)
//            {
//                if (i > 1)
//                {
//                    HelloWorld.DeleteFile(allObj.get(i));
//                    System.out.println(allObj.get(i));
//                }
//            }
//        }
        FileSort(false, "C:\\Users\\muye\\Desktop\\javatest","aa");
    }

转载于:https://www.cnblogs.com/standy225/archive/2013/01/15/2860504.html

你可能感兴趣的文章
java 泛型详解
查看>>
Android中代码设置RadioButton的高端技巧
查看>>
分享Axure RP8.0激活码一份
查看>>
KISSY
查看>>
C++实现一个自动注册类工厂(抽象工厂)
查看>>
AtCoder Regular Contest 103 E Tr/ee
查看>>
HTTP状态代码官方描述
查看>>
jdbc、jpa、spring data jpa、hibernate、mybatis之间的关系及区别
查看>>
Day--1--网络协议
查看>>
数字签名和数字证书
查看>>
Android应用性能优化之使用SparseArray替代HashMap
查看>>
$.each()的用法
查看>>
北航软件能力培养启发和下一步工作
查看>>
Compressive Blind Deconvolution Formula
查看>>
.net的建站步骤(官网实例)
查看>>
Python-OpenCV中的图像模糊
查看>>
部署Thomas Kyte 的 runstats 工具
查看>>
Java基础 - 获取键盘输入
查看>>
移动端实时监听输入框变化
查看>>
每天2个android小例子----简单计算器源代码
查看>>