2016-09-30 239 views
-1

對於java自動化而言我是新手,我有一個需要導航到特定文件夾的場景,文件夾中有我需要的文件列表按日期過濾並獲取最近生成的文件名,即如果當前時間是下午5:30,我需要找到在下午5:28到當前時間(下午5:30)之間創建的文件名稱如何使用Java代碼從具有當前日期和時間的文件夾中獲取文件名

這必須是使用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); 
        }    
       } 

謝謝提前。

+0

祝你好運。也許如果你向我們展示你試圖在你的問題中編碼,我們可能會給你更具體的幫助。 –

+0

嗨吉爾伯特感謝您的回覆...我已編輯我原來的帖子,請檢查出你是否可以幫助我.... –

回答

2

試試這個。在這裏,我根據他們上次更新的時間對文件進行排序。

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

上面的代碼是主要功能的一部分。

下面的代碼是單獨的類。

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

    } 
+0

我得到錯誤「列表 list = new ArrayList ();」在這一行。錯誤:FileOrder無法解析爲類型 –

+0

創建FileOrder一個單獨的類並試試。我相信你沒有想到就添加了代碼。我將添加說明 – cody123

相關問題