Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/373.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用Java代码从具有当前日期和时间的文件夹中获取文件名_Java - Fatal编程技术网

如何使用Java代码从具有当前日期和时间的文件夹中获取文件名

如何使用Java代码从具有当前日期和时间的文件夹中获取文件名,java,Java,我是java自动化新手,我有一个场景,我需要导航到一个特定的文件夹,该文件夹有一个文件列表,我需要按日期筛选并获取最近生成的文件名,即,如果当前时间是5:30pm,我需要查找在5:28pm到当前时间(5:30pm)之间创建的文件名 这必须使用Java代码、文件夹中的文件名来实现 DOF_US_DELL_1.0_20160930_0516.CSV DOF_US_DELL_1.0_20160930_0756.CSV DOF_US_DELL_1.0_20161003_0346.CSV DOF_US_D

我是java自动化新手,我有一个场景,我需要导航到一个特定的文件夹,该文件夹有一个文件列表,我需要按日期筛选并获取最近生成的文件名,即,如果当前时间是5:30pm,我需要查找在5:28pm到当前时间(5:30pm)之间创建的文件名

这必须使用Java代码、文件夹中的文件名来实现 DOF_US_DELL_1.0_20160930_0516.CSV
DOF_US_DELL_1.0_20160930_0756.CSV
DOF_US_DELL_1.0_20161003_0346.CSV
DOF_US_DELL_1.0_20161003_0536.CSV
DOF_US_DELL_1.0_20161004_0747.CSV
DOF_US_DELL_1.0_20161005_0527.CSV

下面是一段代码,帮助我获取目录中的文件列表

File dir = new File("C:\\FolderName");
              FilenameFilter filter = new FilenameFilter() {
                 public boolean accept
                 (File dir, String name) {
                    return name.startsWith("DOF");
                }
              };
              String[] children = dir.list(filter);
              if (children == null) {
                 System.out.println("Either dir does not exist or is not a directory");
              } 
              else 
              {
                  System.out.println("# of the files in the folder is: "+children.length);
                  if(children.length>0)
                  {
                    for (int i=0; i<children.length; i++) 
                    {
                      String filename = children[i];
                      System.out.println(filename);
                    }
                  }
                  else
                  {
                      System.err.println("# of the files in the folder is: "+children.length);
                      fail("# of the files in the folder is: "+children.length);
                  }               
              } 
File dir=新文件(“C:\\FolderName”);
FilenameFilter筛选器=新建FilenameFilter(){
公共布尔接受
(文件目录,字符串名称){
返回名称。开始使用(“DOF”);
}
};
String[]children=dir.list(过滤器);
if(children==null){
System.out.println(“目录不存在或不是目录”);
} 
其他的
{
System.out.println(“#文件夹中的文件为:“+childrence.length”);
如果(子项长度>0)
{

对于(inti=0;i试试这个。这里我根据文件的上次更新时间对文件进行排序

        FilenameFilter filter = new FilenameFilter() {
            public boolean accept(File dir, String name) {
                return name.startsWith("cred");
            }
        };

        List<FileOrder> list = new ArrayList<FileOrder>();
        File dir = new File("/tmp/");
        for (File file : dir.listFiles(filter)) {
            list.add(new FileOrder(file.getName(), file.lastModified()));
        }

        Collections.sort(list);

        System.out.println(list);
        System.out.println("Last updated file : " + (list != null ? list.get(0) : null));
FilenameFilter=newfilenamefilter(){
公共布尔接受(文件目录,字符串名称){
返回名称。开始使用(“cred”);
}
};
列表=新的ArrayList();
File dir=新文件(“/tmp/”);
for(文件:dir.listFiles(过滤器)){
添加(新文件顺序(file.getName(),file.lastModified());
}
集合。排序(列表);
系统输出打印项次(列表);
System.out.println(“上次更新的文件:”+(list!=null?list.get(0):null));
以上代码是主函数的一部分

下面的代码是单独的类

public class FileOrder implements Comparable<FileOrder> {
        private String fileName;
        private Long updationTIme = 0l;

        @Override
        public String toString() {
            return "FileOrder [fileName=" + fileName + ", updationTIme=" + updationTIme + "]";
        }

        public FileOrder(String fileName, Long updationDate) {
            super();
            this.fileName = fileName;
            this.updationTIme = updationDate;
        }

        public String getFileName() {
            return fileName;
        }

        public void setFileName(String fileName) {
            this.fileName = fileName;
        }

        public Long getUpdationDate() {
            return updationTIme;
        }

        public void setUpdationDate(Long updationDate) {
            this.updationTIme = updationDate;
        }

        @Override
        public int compareTo(FileOrder o) {
            return o.getUpdationDate().compareTo(this.getUpdationDate());
        }

    }
公共类FileOrder实现了可比较的{
私有字符串文件名;
私有长更新时间=0l;
@凌驾
公共字符串toString(){
返回“FileOrder[fileName=“+fileName+”,updatetime=“+updatetime+”]”;
}
公共文件顺序(字符串文件名,长更新日期){
超级();
this.fileName=文件名;
this.updatetime=updatedate;
}
公共字符串getFileName(){
返回文件名;
}
public void setFileName(字符串文件名){
this.fileName=文件名;
}
公共长getUpdate(){
返回更新时间;
}
公共无效设置日期(长更新日期){
this.updatetime=updatedate;
}
@凌驾
公共整数比较(文件顺序o){
返回o.getUpdate().compareTo(this.getUpdateDate());
}
}

祝你好运。也许如果你向我们展示你在问题中尝试编写的代码,我们可能会给你更具体的帮助。嗨,吉尔伯特,谢谢你的回复……我已经编辑了我的原始帖子,请检查你是否能帮我……我收到错误“List List=new ArrayList();”在这一行中。错误:FileOrder无法解析为类型创建FileOrder一个单独的类并重试。我相信您已经添加了未经思考的代码。我将添加说明