告诉你某一个目录(如:/boss/rating/log),如何获得此目录下以*.log结尾,并且修改时间距系统时间在一小时内的所有文件名列表?
并且此目录下如果有子目录,如何递归获得下一级目录中以*.log结尾的文件?请各位赐教。

解决方案 »

  1.   

    public static void printFile(String path) throws Exception {
    File f = new File(path);
    File[]array = f.listFiles();
    for(File g:array) {
    if(g.isDirectory()) {
    printFile(g.getPath());
    }else {
    //自行处理对应逻辑
    System.out.println(g.getName());
    }
    }
    }
    可以参考下
      

  2.   

    恩,谢谢。通过你写的可以递归获得所有文件。请问是否知道获取指定为*.log的文件? 还有就是指定在一个小时之内。
      

  3.   

    File file = new File("E:/");
    File[] files = file.listFiles(new FileFilter() {
    public boolean accept(File pathname) {
    String tmp = pathname.getName().toLowerCase();
    if (tmp.endsWith(".txt")) {
    return true;
    }
    return false;
    }
    });
    for(int i=files.length-1;i>=0;i--){
    long date=files[i].lastModified();//文件最后修改的毫秒数
    long now=new Date().getTime();//现在时刻的毫秒数
    long hour=60*60*1000;//一小进的毫秒数
    if(now-date<hour){
    System.out.println(files[i]);
    }
    }
    仅做参考