有没有办法在Java中以特定名称开头的目录中打开一些文本文件?
例如,在我的目录中,我有以下文件:
Ab-01.txt
Ab-02.txt
Ab-03.txt
Ab-04.txt
SomethingElse.txt
NotRelated.txt
所以现在在我的Java代码中我只想打开那些以“Ab-
”开头的文件
答案 0 :(得分:37)
是。使用File.listFiles(FilenameFilter)
:
举个例子:
File dir = new File("/path/to/directory");
File[] foundFiles = dir.listFiles(new FilenameFilter() {
public boolean accept(File dir, String name) {
return name.startsWith("Ab-");
}
});
for (File file : foundFiles) {
// Process file
}
当然,将accept()
方法中的条件更改为您需要的任何内容。也许name.startsWith("Ab-") && name.endsWith(".txt")
。
答案 1 :(得分:5)
http://download.oracle.com/javase/1.4.2/docs/api/java/io/File.html#listFiles(java.io.FilenameFilter) 在父文件夹上使用此方法,并实现FilenameFilter,如:
boolean accept(File dir, String name){ return name.matches("AB-\n{2}.*") }
答案 2 :(得分:1)
创建表示目录的java.io.File,然后使用listFiles method的FileNameFilter。您可以确切地告诉它您想要匹配的模式,例如name.startsWith(“Ab - ”)。
答案 3 :(得分:1)
File files[] = directory.listFiles();
for (File f : files) {
If(//filename matches what you want)
{
// do whatever you want with each File f
}
}
应该工作
答案 4 :(得分:0)
没有神奇的方法。您应列出检查名称的目录中的所有文件,并使用该模式读取文件。并递归检查每个目录。