7

Javaで特定の名前のディレクトリを見つける最良の方法は何ですか? 探しているディレクトリは、現在のディレクトリまたはそのサブディレクトリのいずれかにあります。

4

7 に答える 7

4

ファイル ツリーをたどるには、FileVisitorインターフェイスを使用できます。チュートリアルをご覧ください。サンプルコードの検索も参照してください。

于 2012-05-28T07:25:01.000 に答える
3

ソリューションには、File.listFiles(String)

java.io.FileAPIリファレンス

于 2012-05-28T07:19:20.427 に答える
3

あなたが言及したように、再帰はこの要件に対応する必要があります

import java.io.File;

public class CheckFile {

    private static boolean foundFolder = false;

    public static void main(String[] args) {
        File dir = new File("currentdirectory");
        findDirectory(dir);
    }

    private static void findDirectory(File parentDirectory) {
        if(foundFolder) {
            return;
        }
        File[] files = parentDirectory.listFiles();
        for (File file : files) {
            if (file.isFile()) {
                continue;
            }
            if (file.getName().equals("folderNameToFind")) {
                foundFolder = true;
                break;
            }
            if(file.isDirectory()) {
               findDirectory(file);
            }
        }
    }

}
于 2012-05-28T07:28:14.150 に答える
0

分割統治?単純なアプローチ: すべてのディレクトリに対して、タスクを開始できます。タスクは次のことを行います。

  1. すべてのディレクトリを一覧表示する
  2. リストに一致するディレクトリが含まれている場合は、出力してアプリケーションを終了します
  3. ディレクトリごとにタスクを開始します。
于 2012-05-28T07:23:43.857 に答える
0

何かのようなもの:

public static final File findIt(File rootDir, String fileName) {
    File[] files = rootDir.listFiles();
    List<File> directories = new ArrayList<File>(files.length);
    for (File file : files) {
        if (file.getName().equals(fileName)) {
            return file;
        } else if (file.isDirectory()) {
            directories.add(file);
        }
    }

    for (File directory : directories) {
        File file = findIt(directory);
        if (file != null) {
            return file;
        }
    }

    return null;
}
于 2012-05-28T07:25:21.940 に答える