文件夹中的Java搜索索引

时间:2017-06-01 19:50:23

标签: java indexing webserver

我写了一个小的Webserver应用程序。现在我遇到了问题,我现在不知道如何显示索引文件。如何获取以index开头的目录中的第一个文件?无论哪个文件扩展名。我得到了new File("Path/To/Dir");的目录。

请帮助我!

问候

1 个答案:

答案 0 :(得分:2)

您可以使用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逻辑。

要获取这些文件中的第一个,您需要定义一些订单。例如,如果您需要对其名称上的文件进行alffabetically排序(以区分大小写的方式),您可以执行以下操作:

    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的版本。