2017-06-01 18 views
0

私は小さなWebサーバアプリケーションを書いています。今私は問題がある、私は今どのようにインデックスファイルを表示することはできません。 indexで始まるディレクトリ内の最初のファイルを取得するにはどうすればよいですか?ファイル拡張子に関係なく私はnew File("Path/To/Dir");と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); 
     } 
    } 

これは、接頭辞がで始まるすべてのファイルを検索します。

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 
     } 
    } 

あなたには、いくつかの特別な順序必要がある場合にも、いくつかのコンパレータで並べ替えることができます:

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

Collections#min()Comparatorとバージョンがあります。

Arrays.sort(indexFileNames, comparator); 

は、さらにもう1つの方法は、ソートを回避し、Collections#min()方法を使用することです。

+0

そして、どうすれば最初のものを手に入れることができますか? – Markus

+0

「最初の」要素の選択に関する追加情報を使って答えを更新しました –

関連する問題