有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

如何从包含大量不同日期文件的文件夹中修改特定日期的所有文件?使用java代码

Blockquote

我想根据文件的日期和时间过滤文件,但在java中找不到任何方法。 如果有人对此有任何想法,请帮忙`File fil=新文件(“C:\sujeet\efsfiles\iems\input”); FilenameFilter筛选器=新建FilenameFilter(){ 公共布尔接受(文件fil,字符串名){

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

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


 }`

共 (1) 个答案

  1. # 1 楼答案

    此处的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;
            }
        }
    }