如何从java目录的子文件夹中读取具有特定类型文件的文件

xcitsw88  于 2021-07-09  发布在  Java
关注(0)|答案(3)|浏览(398)

我想问一下,如何从目录中存在的子文件夹中读取(.)类型的文件。
我有一个包含子文件夹的文件夹(子文件夹的数目不详)

C:\MainFolder  
  contains->           [subFolder_A][subFolder_B]......[subFolder_n]

每个子文件夹都包含大量文件,但其中一个文件的类型不同,特别是(.fingerprint)类型。

[subFolder_A]  -->  a.txt , atitle.txt  , afin.fingerprint
       [subFolder_B]  -->  b.txt , btitle.txt  , bfin.fingerprint
             ...............................................
       [subFolder_n]  -->  n.txt , ntitle.txt  , nfin.fingerprint

所以每次我想把这个文件中的一个读到java…做一些函数,然后再读下一个,直到c:\main文件夹被扫描完。
我可以读一个,如果我给路径直接代码,但我想一些提示,如果有人知道采取一个自动的方式把他们都

Path path = Paths.get("C:\\MainFolder\\afin.fingerprint");
        byte[] data;
        byte[] fin;
        try {
             this.data = Files.readAllBytes(path);
             byte[] data = Files.readAllBytes(path);
       } catch (Exception e) {....}
          fin=data;
fzwojiic

fzwojiic1#

可以使用流递归遍历文件树,例如:

Files.walk(Paths.get("C:/MainFolder"))
      .filter(p -> p.toFile().isFile())
      .filter(p -> p.getFileName().toString().endsWith(".fingerprint"))
      .forEach(p -> process(p));
yzckvree

yzckvree2#

您可以找到主文件夹的所有子文件夹,并在循环中扫描它们。对于每个子文件夹,您可以再次找到其中的所有文件,然后根据需要对其进行筛选。要列出文件夹的内容,请使用https://docs.oracle.com/javase/7/docs/api/java/io/file.html#listfiles()

js81xvg6

js81xvg63#

您可以像这样在子目录中循环:

File directory = new File(//path to directory);
  for(File subdirectory : directory.listFiles()){
    for(File file : Subdirectory.listFiles()){
      if(file.toString().endsWith(".footprint"){
      //doStuff
    }
  }
}

相关问题