如何从JAVA目录的子文件夹中读取具有特定类型文件的文件
我想问一下,如何从目录中存在的子文件夹中读取(.xxx)类型的文件 我有一个包含子文件夹的文件夹(子文件夹的数量不详) 每个子文件夹都包含大量文件,但其中一个文件的类型不同,特别是(.fingerprint)类型 所以每次我都想把这个文件中的一个读到java…执行一些函数,然后执行下一个函数,直到C:\main文件夹被填满 如果我直接给出代码的路径,我就可以读一个,但如果有人知道如何自动获取它们,我希望得到一些提示如何从JAVA目录的子文件夹中读取具有特定类型文件的文件,java,file,subdirectory,Java,File,Subdirectory,我想问一下,如何从目录中存在的子文件夹中读取(.xxx)类型的文件 我有一个包含子文件夹的文件夹(子文件夹的数量不详) 每个子文件夹都包含大量文件,但其中一个文件的类型不同,特别是(.fingerprint)类型 所以每次我都想把这个文件中的一个读到java…执行一些函数,然后执行下一个函数,直到C:\main文件夹被填满 如果我直接给出代码的路径,我就可以读一个,但如果有人知道如何自动获取它们,我希望得到一些提示 Path path = Paths.get("C:\\MainF
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,我已经编辑了从主目录开始的代码。在这种情况下,您需要做的就是给出子目录的第一个路径。希望能有帮助。