2017-06-01 140 views
0

我已經寫了一個小型的Web服務器應用程序。現在我有這個問題,我現在不怎麼顯示索引文件。我怎樣才能得到以索引開頭的目錄中的第一個文件?不管是哪個文件擴展名。我得到new File("Path/To/Dir");的目錄。文件夾中的Java搜索索引

請幫幫我!

問候

回答

2

你可以使用File#list()方法。

// your directory in which you look for index* files 
    File directory = new File("."); 
    // note that indexFileNames may be null 
    String[] indexFileNames = directory.list(new FilenameFilter() { 
     public boolean accept(File dir, String name) { 
      return name.startsWith("index"); 
     } 
    }); 
    if (indexFileNames != null) { 
     for (String name : indexFileNames) { 
      System.out.println(name); 
     } 
    } 

這會找到所有以index前綴開頭的文件。

請注意,list()方法返回文件和目錄的名稱。如果你只需要文件,你可以增加FilenameFilter邏輯。

要獲得這些文件的第一個,您需要定義一些順序。例如,如果您需要在alfabetically他們的名字文件(區分大小寫的方式)進行排序,你可以做到以下幾點:

if (indexFileNames != null) { 
     // sorting the array first 
     Arrays.sort(indexFileNames); 
     // picking the first of them 
     if (indexFileNames.length > 0) { 
      String firstFileName = indexFileNames[0]; 
      // ... do something with it 
     } 
    } 

你也可以排序的一些比較,如果你需要一些特殊的命令:

Arrays.sort(indexFileNames, comparator); 

還有一種方法是避免排序和使用Collections#min()方法:

if (indexFileNames.length > 0) { 
    String firstFileName = Collections.min(Arrays.asList(indexFileNames)); 
    // ... process it 
} 

Collections#min()也有Comparator版本。

+0

我怎麼能得到他們的第一個? – Markus

+0

我已經更新了答案,並提供了關於選擇「第一個」元素的附加信息 –