0

数週間前、このスレッドGrabbing specific files in a folderを使用して、サードパーティが提供するディレクトリから mkv ファイルのリストを取得しました。ただし、ディレクトリの構造が変更されたため、すべてのフォルダーを再帰的に循環して .mkv ファイルを見つける必要があります。

Apache commons ライブラリに FileUtils.listFiles() メソッドがあると聞いたことがありますが、これは有望なようです。ただし、デフォルトでコレクションを返すことがわかっている限り、コレクションは順序が保持されることを保証しません (これらは .mkv ビデオ ファイルであるため、順序は非常に重要です)。このようなことを経験した方はいらっしゃいますか?

4

3 に答える 3

1

Java 7 以降では、ファイル ツリーをトラバースするためにサードパーティのライブラリを使用する必要はまったくありません。新しい Path API を見てください。特にFileVisitor。名前が「.mkv」で終わるファイルのみをリストするものを簡単に作成できます

于 2013-08-21T17:00:47.953 に答える
1

ディレクトリ構造の深さは何レベルですか?

たとえば、以前はファイルがルート ディレクトリ内にあり、現在はルート/ドメイン 1、ルート/ドメイン 2、ルート/ドメイン 3 などにあるとします。

そのために、かなり簡単なことを書きました。

    String rootPath = <path_to_root>;
    File[] domains = new File(rootPath).listFiles();
    for (File domain : domains) {
        if (domain.isDirectory()) {
            File[] files = new File(domain.getAbsolutePath()).listFiles();
            for (File file : files) {
                if (file.isFile() && file.getAbsolutePath().endsWith(".mkv")) {
                    System.out.println(file.getAbsolutePath());
                }
            }
        }
    }
于 2013-08-21T17:18:49.630 に答える