当前位置: 首页 > news >正文

序列号

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

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

相关文章:

  • Android Parcelable和Serializable的区别
  • VHD windows7 U盘系统制作流程(自己整理)
  • 5、线程终止方式:(转)
  • php 导出txt文件 内容换行
  • Facebook团队关于Hadoop/HBase在SSD上的实验和讨论(转)
  • oracle db_link
  • Windows Phone 8 Wallet 手机钱包 / 电子钱包
  • jython - 安装
  • STOverlay
  • 学习地址
  • DR模式
  • oracle 不可见索引
  • 写Java程序的三十个基本规则
  • QXDM下查看CDMA短信信息
  • android手机信息表
  • hexo+github搭建个人博客
  • 《Javascript数据结构和算法》笔记-「字典和散列表」
  • Java小白进阶笔记(3)-初级面向对象
  • js操作时间(持续更新)
  • leetcode386. Lexicographical Numbers
  • Mybatis初体验
  • Promise初体验
  • SpringCloud集成分布式事务LCN (一)
  • Travix是如何部署应用程序到Kubernetes上的
  • TypeScript迭代器
  • vue2.0开发聊天程序(四) 完整体验一次Vue开发(下)
  • vue从创建到完整的饿了么(18)购物车详细信息的展示与删除
  • zookeeper系列(七)实战分布式命名服务
  • 纯 javascript 半自动式下滑一定高度,导航栏固定
  • 服务器从安装到部署全过程(二)
  • 给github项目添加CI badge
  • 扑朔迷离的属性和特性【彻底弄清】
  • 深度学习在携程攻略社区的应用
  • 宾利慕尚创始人典藏版国内首秀,2025年前实现全系车型电动化 | 2019上海车展 ...
  • ​人工智能之父图灵诞辰纪念日,一起来看最受读者欢迎的AI技术好书
  • #Linux(帮助手册)
  • (2)STL算法之元素计数
  • (4)事件处理——(2)在页面加载的时候执行任务(Performing tasks on page load)...
  • (Note)C++中的继承方式
  • (第9篇)大数据的的超级应用——数据挖掘-推荐系统
  • (六)库存超卖案例实战——使用mysql分布式锁解决“超卖”问题
  • (十)DDRC架构组成、效率Efficiency及功能实现
  • (四) Graphivz 颜色选择
  • .NET CORE 第一节 创建基本的 asp.net core
  • .NET 实现 NTFS 文件系统的硬链接 mklink /J(Junction)
  • .NET开源快速、强大、免费的电子表格组件
  • .NET项目中存在多个web.config文件时的加载顺序
  • .NET学习全景图
  • /etc/sudoers (root权限管理)
  • @取消转义
  • [ Linux Audio 篇 ] 音频开发入门基础知识
  • []error LNK2001: unresolved external symbol _m
  • [BZOJ 1032][JSOI2007]祖码Zuma(区间Dp)
  • [flask]http请求//获取请求体数据
  • [hdu 4405] Aeroplane chess [概率DP 期望]