如何等待直到创建以某个字符开头的文件列表

时间:2017-02-06 10:37:28

标签: java

    File dir = new File(dirName);
    ArrayList<File> files = new ArrayList<File>();
    dir.listFiles(new FileFilter()
    {

        @Override
        public boolean accept(File file)
        {
            if (!file.isFile()){
                return false;
            }

            String name = file.getName();

            if (!StringUtils.startsWith(name, startsWith)){
                return false;
            }

            if (!StringUtils.endsWith(name, ensWith)){
                return false;
            }

            files.add(file);
            s_logs.log(Level.INFO, "File that startswith " + startsWith + " found ");
            return true;

        }
    });

此代码用于获取以字符开头的所有文件,但我想等到创建文件。 你能建议一个方法吗?

1 个答案:

答案 0 :(得分:2)

您可以使用Java中新WatchService包中提供的名为java.nio.file的内容。

您可以使用此方法观察任何文件创建的目录。如果需要,您还可以递归检查目录。 Oracle还提供了一个可用于入门的代码示例。

https://docs.oracle.com/javase/tutorial/displayCode.html?code=https://docs.oracle.com/javase/tutorial/essential/io/examples/WatchDir.java

您需要修改上述示例中的processEvents()方法,并检查child对象是否以您要查找的字符开头。

希望这有助于您开始使用!