java.io.File.list()
Windows エクスプローラーと同じ順序を取得するには?
プログラムでは、Temp
フォルダなどTemp1
を作成していますTemp2
。しかしjava.io.File.list()
、フォルダーリストを取得するために使用するとTemp1
、Temp10
などとなります。
Windows Explorer に表示されているのと同じ注文リストを取得する方法を教えてください。
ありがとう
Windows エクスプローラーは、既定で名前順に並べ替えられたファイルを表示します。のjavadocを見るとFile.list()
、
結果の配列内の名前文字列が特定の順序で表示されるという保証はありません。特に、アルファベット順に表示されるとは限りません。
したがって、 を使用してファイル リストを取得した後、File.list()
これをファイル名で並べ替えてArrays.sort(file.list())
、必要な順序を取得する必要があります。
独自の Comparator を作成する必要があります。Comparator は、ファイル名の文字列を分割し、連続する非数字文字と数字文字のシーケンスに分割する必要があります。次に、シーケンスを並べ替え、比較する前に一連の数字を整数に変換します。また、整数が等しい場合 (先頭にゼロがあるため)、長い数値シーケンスを短いシーケンスの前に並べます。