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

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

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

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

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

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

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

  1. Path path = Paths.get("C:\\MainFolder\\afin.fingerprint");
  2. byte[] data;
  3. byte[] fin;
  4. try {
  5. this.data = Files.readAllBytes(path);
  6. byte[] data = Files.readAllBytes(path);
  7. } catch (Exception e) {....}
  8. fin=data;
fzwojiic

fzwojiic1#

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

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

yzckvree2#

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

js81xvg6

js81xvg63#

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

  1. File directory = new File(//path to directory);
  2. for(File subdirectory : directory.listFiles()){
  3. for(File file : Subdirectory.listFiles()){
  4. if(file.toString().endsWith(".footprint"){
  5. //doStuff
  6. }
  7. }
  8. }

相关问题