0

たくさんのサブフォルダーがあるフォルダー内の同じ名前のファイルをループし、各ファイルに対していくつかのロジックを実行するJavaコードを作成しています。

parentFolder/
            subfolder1/file.txt
            subfolder2/file.txt
            subfolder3/file.txt
            ... ...
            subfolderx/file.txt

上記はそれがどのように見えるかの構造です。

どうすればいいですか?

4

4 に答える 4

4

Java 7を使用している場合は、 PathAPIに実装されているビジターパターンを試すことができます。Files.walkFileTree(...)

これを使用する最も簡単な方法は、の(匿名の)サブクラスを渡し、SimpleFileVisitorファイルにアクセスするたびに必要なことを実行することです。例えば、

Files.walkFileTree(parentPath, new SimpleFileVisitor() {
  @Override FileVisitResult visitFile(Path file, BasicFileAttributes attrs) {
    // you can do whatever you want with "file" here.
    System.out.println("The file is: " + file);
    return FileVisitResult.CONTINUE;
  }
});
于 2013-02-06T01:01:17.410 に答える
1
String parentFolderPath = "parentFolder";
String fileName = "file.txt";
File parent = new File(parentFolderPath);
for (File subFolder : parent.listFiles()) {
    if (subFolder.isDirectory()) {
        File f = new File(subFolder, fileName);
        if (f.exists()) {
            // your code here
        }
    }
}
于 2013-02-06T01:02:28.980 に答える
0

ApacheCommonsのFileUtilsクラスを見てください。

FileUtilsiterateFiles(File directory、 IOFileFilter fileFilter、IOFileFilter dirFilter)メソッドがあり、ファイルフィルターを指定できます。

于 2013-02-06T01:02:46.990 に答える
0

これを行う別の方法を捨てたいと思います。このファイル検索および処理ソフトウェア: http: //www.softpedia.com/get/File-managers/JFileProcessor.shtml https://github.com/stant/jfileprocessor

名前、サイズ、日付で、Xまでのサブフォルダーまたはすべての深さでglobまたはregexを含むファイルを検索できます。リストウィンドウまたはファイルに保存できます。次に、Groovy(Javaと考えてください)スクリプトを実行して、ファイルのリストに対して必要なことを実行できます。それらをzipまたはtarし、sed、delete、move、copy files、grep、ls-lなどのリスト文字列を変更します。また、あるリストを別のリストに追加、削除、減算するなど、リストをマッサージすることもできます。

于 2017-09-01T22:12:37.793 に答える