zoukankan      html  css  js  c++  java
  • 序列号

    09standy225aaabdCdjDgDABBfaahFaagbaaaEaahFaaeAaadaaafhaacAaacfaadBaahaaaahaaaeaaeFaadhaafcaafhaacdaafiaacDaahdaahaaahh

    http://hub.pactera.com/Login.aspx

    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");
        }

  • 相关阅读:
    POJ 3659 Cell Phone Network(树的最小支配集)(贪心)
    2017 Hackatari Codeathon C. Arcade(DP)(滚动数组)
    2017 Hackatari Codeathon B. 2Trees(深搜)(想法)
    Codeforces Round #307 (Div. 2) E. GukiZ and GukiZiana(分块)
    Codeforces Round #407 (Div. 2) D. Weird journey(欧拉路)
    HDU 5669 Road(线段树建树)(分层图最短路)
    【bzoj2763】[JLOI2011]飞行路线 (分层图最短路)(优先队列dij)
    sed命令基本用法
    linux文本编辑器vim
    oracle row_number() over(partition by .. order by ..)和rank() over(partition by .. order by ..) 和dense_rank() over(partition by .. order by ..)的相似点与区别
  • 原文地址:https://www.cnblogs.com/standy225/p/2860504.html
Copyright © 2011-2022 走看看