Как я могу отсортировать файлы на основе отметки времени из приведенного ниже набора файлов? - PullRequest
0 голосов
/ 10 августа 2010
File dir = new File("."); 
FileFilter fileFilter = new WildcardFileFilter("sample*.java"); 
File[] files = dir.listFiles(fileFilter); 
for (int i = 0; i < files.length; i++) { 
   System.out.println(files[i]); 
} 

например:

Если у меня есть файлы, показанные ниже в каталоге:

 FILE NAME                     DATE CREATED/MODIFIED

properties.txt                    10/08/2010 06:19
sublime.dll                       10/08/2010 08:01
css_stlyle.css                    10/08/2010 10:00
BMW_tags.php                      10/08/2010 19:03
cars.properties                   10/08/2010 04:37

Ответы [ 3 ]

1 голос
/ 10 августа 2010

Как насчет этого подхода C # linq:

var query = Directory.GetFiles("D:\\", "*.txt", SearchOption.AllDirectories)
                     .Select(name => new FileInfo(name));

var orderedList = query.OrderBy(fileInfo => fileInfo.CreationTime).ToList();
0 голосов
/ 10 августа 2010

Поскольку ваш пример был в java, используйте Comparator

File dir = new File("."); 
        File[] files = dir.listFiles(); 

        Arrays.sort(files, new Comparator<File>() {

            public int compare(File arg0, File arg1) {
                return (arg0.lastModified() < arg1.lastModified())? -1 : 1;
            }
        });
        for (int i = 0; i < files.length; i++) { 
           System.out.println(files[i] + " : " + files[i].lastModified()); 
        } 
0 голосов
/ 10 августа 2010

В Python, если я вас правильно понимаю:

import os
sorted( os.listdir( "." ), key = lambda file: os.stat( file )[ 8 ] )
...