2017-02-21 19 views
-3

BLOCKQUOTEКак получить все файлы определенной даты изменений из папки с многочисленными файлами различных дат? С помощью кода Java

Я хочу, чтобы фильтровать файлы в соответствии с его указанием даты и времени, но я не мог Найти какой-либо метод в java. , пожалуйста, помогите, если у кого-нибудь есть представление об этом. `File fil = new File (« C: \ sujeet \ efsfiles \ iems \ input »); FilenameFilter фильтр = новый FilenameFilter() { общественного булево принять (фил файла, имя String) {

return name. 
}}; 
File[] temp= fil.listFiles(filter); 
public void SeeFiles(){ 
for(File file : temp){ 

if(file.isFile()) { 
    count++; 
    System.out.println(file.getName()); 


}` 
+0

* но я не смог найти какой-либо метод в java *. Где ты посмотрел? – CKing

+0

спасибо, пожалуйста, прокомментируйте, если вы знаете какой-либо метод? – Sumit

+0

Где вы искали, чтобы подтвердить, что такого метода нет? – CKing

ответ

0

FileNameFilter здесь не будет работать, как вы ищете уровне атрибутов файла

Проверьте это может быть любая помощь

package com.tmp; 

import java.io.IOException; 
import java.nio.file.DirectoryStream; 
import java.nio.file.Files; 
import java.nio.file.Path; 
import java.nio.file.Paths; 
import java.nio.file.attribute.BasicFileAttributes; 
import java.text.SimpleDateFormat; 
import java.util.Calendar; 
import java.util.Date; 

public class Tmp implements DirectoryStream.Filter<Path> { 

    public static void main(String[] args) { 

     Path dir = Paths.get("d:\\tmp"); // Folder to search for files 

     try (DirectoryStream<Path> stream = Files.newDirectoryStream(dir, new Tmp())) { 

      for (Path entry : stream) { 

       System.out.println(entry.getFileName()); // file name which matched the accessed date 
      } 

     } catch (IOException x) { 

      System.err.println(x); 
     } 
    } 

    @Override 
    public boolean accept(Path file) throws IOException { 

     try { 

      BasicFileAttributes attr = Files.readAttributes(file, BasicFileAttributes.class); 

      Date fileLastAccessedDate = new Date(attr.lastModifiedTime().toMillis()); 

      Calendar cal = Calendar.getInstance(); 

      cal.setTime(fileLastAccessedDate); 

      cal.set(Calendar.HOUR_OF_DAY, 0); 
      cal.set(Calendar.SECOND, 0); 
      cal.set(Calendar.MINUTE, 0); 
      cal.set(Calendar.MILLISECOND, 0); 

      SimpleDateFormat sdf = new SimpleDateFormat("MM-dd-yyyy"); 

      Date targetDate = sdf.parse("2-20-2017"); // date looking for the files 

      return (cal.getTime().equals(targetDate)); 

     } catch (Exception x) { 

      System.err.println(x); 

      return false; 
     } 
    } 
} 
+0

благодарит @Ravi, что он отлично работает ... – Sumit