2012-11-07 14 views

回答

1

您需要的File.lastModified

+0

只是打敗我吧!只有當文件自創建以來未被修改時纔有效,當然... – DNA

+0

我已經這樣做了,是最後一次修改日期,當文件被ftp到這個文件夾時創建日期的可靠來源? –

+0

什麼是'ftp'd'?你是否嘗試過使用它?它給你正確的結果嗎? –

0

的基礎上,使用Comparator創建Set<File>未分類的地方添加了所有File S(unsorted.addAll(dir.listFiles()) 然後進行排序File.listFiles()array of files返回,創建一個新的TreeSet使用Set<File> sorted=new TreeSet(Comparator<File> byDate)與比較日期的自定義比較器。

Comparator<File> byDate=new Comparator<File>() { 

    @Override 
    public int compare(File o1, File o2) { 
     return new Date(o1.lastModified()).compareTo(new Date(o2.lastModified())); 
    } 
}; 

做:

sorted.addAll(unsorted); 

新 集將按日期排序。

1

不,它不,但Arrays.sort方法確實需要Comparator。我下面定義一個簡單的爲您和自己敲出來:

new Comparator<File>() { 
public int compare(File m1, File m2) { 
    return m1.lastModified().compare(m2.lastModified()); 
} 
}); 

希望這有助於...

0

正如你已經想通了listFiles不保證秩序。正如this question中所解釋的那樣,您可以通過它的屬性來查找創建時間並使用類似thia的東西對其進行排序。

0

如果您查看File的Java API,有一種方法稱爲lastModified。如果你用這個屬性對文件進行排序,你應該得到你想要的。我非常肯定,創建後無法安排文件,因爲每個實現都是特定於操作系統的。

所以,如果你做了一個比較,像這樣:

public class FileComparator implements Comparator<File> { 
    public int compare(File x, File y) { 
    Long.compare(x.lastModified(), y.lastModified()); 
    } 
} 

它可以用於像這樣:

File file = new File("..."); 
List<File> files = Arrays.asList(file.listFiles()); 
Collections.sort(files, new FileComparator()); 
相關問題