我编写了一个小型网络服务器应用程序。现在我遇到了问题,我现在不知道如何显示索引文件。如何获取以index开头的目录中的第一个文件?无论哪个文件扩展名。我使用 new File("Path/To/Dir");
获取目录。
请帮助我!
问候
最佳答案
您可以使用File#list()
方法。
// your directory in which you look for index* files
File directory = new File(".");
// note that indexFileNames may be null
String[] indexFileNames = directory.list(new FilenameFilter() {
public boolean accept(File dir, String name) {
return name.startsWith("index");
}
});
if (indexFileNames != null) {
for (String name : indexFileNames) {
System.out.println(name);
}
}
这将找到名称以 index
前缀开头的所有文件。
请注意,list()
方法返回文件和目录的名称。如果您只需要文件,则可以增强 FilenameFilter
逻辑。
要获取这些文件中的第一个,您需要定义一些顺序。例如,如果您需要按文件名称的字母顺序(区分大小写)对文件进行排序,您可以执行以下操作:
if (indexFileNames != null) {
// sorting the array first
Arrays.sort(indexFileNames);
// picking the first of them
if (indexFileNames.length > 0) {
String firstFileName = indexFileNames[0];
// ... do something with it
}
}
如果您需要一些特殊订单,您还可以使用一些比较器进行排序:
Arrays.sort(indexFileNames, comparator);
另一种方法是避免排序并使用 Collections#min()
方法:
if (indexFileNames.length > 0) {
String firstFileName = Collections.min(Arrays.asList(indexFileNames));
// ... process it
}
Collections#min()
也有一个带有 Comparator
的版本。
关于Java 在文件夹中搜索索引,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44315979/