序列号

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

posted on 2013-01-15 00:16  木叶堂  阅读(1334)  评论(0编辑  收藏  举报

导航