2017-02-06 1 views
0
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; 

     } 
    }); 

Этот код используется для получения файла, начинающегося с символа, но я хочу подождать, пока файл не будет создан. Не могли бы вы предложить способ?Как подождать, пока не будет создан список файлов, начинающихся с какого-либо символа

+0

Но вам все равно нужно создавать файлы. Это создает только «Список» файла, эти экземпляры автоматически не создают файл в системе хранения. – AxelH

ответ

2

Вы можете использовать что-то, называемое WatchService, которое доступно в новом пакете java.nio.file на Java.

Вы можете наблюдать за каталогом для создания любого файла с помощью этого. Вы также можете проверить рекурсию каталога, если это необходимо. Oracle также выпустила образец кода, который вы можете использовать для начала работы.

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

Вам нужно будет изменить метод processEvents() в приведенном выше примере, и проверить, если child объект начинается с символа, который вы пытаетесь искать.

Надеюсь, это поможет вам начать работу!

Смежные вопросы