Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/317.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何从JAVA目录的子文件夹中读取具有特定类型文件的文件_Java_File_Subdirectory - Fatal编程技术网

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

如何从JAVA目录的子文件夹中读取具有特定类型文件的文件,java,file,subdirectory,Java,File,Subdirectory,我想问一下,如何从目录中存在的子文件夹中读取(.xxx)类型的文件 我有一个包含子文件夹的文件夹(子文件夹的数量不详) 每个子文件夹都包含大量文件,但其中一个文件的类型不同,特别是(.fingerprint)类型 所以每次我都想把这个文件中的一个读到java…执行一些函数,然后执行下一个函数,直到C:\main文件夹被填满 如果我直接给出代码的路径,我就可以读一个,但如果有人知道如何自动获取它们,我希望得到一些提示 Path path = Paths.get("C:\\MainF

我想问一下,如何从目录中存在的子文件夹中读取(.xxx)类型的文件

我有一个包含子文件夹的文件夹(子文件夹的数量不详)

每个子文件夹都包含大量文件,但其中一个文件的类型不同,特别是(.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;
例如,您可以这样做:

 Files.walk(Paths.get("C:/MainFolder"))
      .filter(p -> p.toFile().isFile())
      .filter(p -> p.getFileName().toString().endsWith(".fingerprint"))
      .forEach(p -> process(p));
例如,您可以这样做:

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

您可以找到主文件夹的所有子文件夹,并在循环中扫描它们。同样,对于每个子文件夹,您可以找到其中的所有文件,然后根据需要对其进行筛选。 要列出文件夹的内容,请使用

您可以找到主文件夹的所有子文件夹,并循环扫描它们。同样,对于每个子文件夹,您可以找到其中的所有文件,然后根据需要对其进行筛选。 要列出文件夹的内容,请使用

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

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

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

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

很抱歉,它是
getFileName
-而process是您需要编写的一种方法!尝试{Files.walk(path.get(“C:\\MainFolder”).filter(p->p.toFile().isFile()).filter(p->p.getFileName().endsWith(“.fingerprint”).forEach(p->process(p));}catch(IOException ex){Logger.getLogger(main.class.getName()).log(Level.SEVERE,null,ex);}}静态无效进程(路径p){System.out.println(“找到的文件”+p.getName);}类似的东西不起作用。。实际上,当我运行我发布的代码时,我将调用一个函数(print是为了查看是否找到它),它会在没有任何警告的情况下运行,但我看不到Mainfolder[System.out.println(“find file”+p.getName);]@NakosKotsanis将第二个过滤器更改为
.filter(p->p.getFileName().toString()).endsWith(“.fingerprint”)
现在应该可以了。很抱歉,它是
getFileName
-而process是您需要编写的方法!尝试{Files.walk(path.get(“C:\\MainFolder”).filter(p->p.toFile().isFile()).filter(p->p.getFileName().endsWith(“.fingerprint”).forEach(p->process(p));}catch(IOException ex){Logger.getLogger(main.class.getName()).log(Level.SEVERE,null,ex);}}静态无效进程(路径p){System.out.println(“找到的文件”+p.getName);}类似的东西不起作用。。实际上,当我运行我发布的代码时,我将调用一个函数(print是为了查看是否找到它),它会在没有任何警告的情况下运行,但我看不到Mainfolder[System.out.println(“find file”+p.getName);]@NakosKotsanis将第二个过滤器更改为
.filter(p->p.getFileName().toString()).endsWith(“.fingerprint”)
现在应该可以了。嗨,Nakos,我已经编辑了代码,从主目录开始。在这种情况下,您需要做的就是给出子目录的第一个路径。希望有帮助。嗨,Nakos,我已经编辑了从主目录开始的代码。在这种情况下,您需要做的就是给出子目录的第一个路径。希望能有帮助。