2016-03-10 3 views
2

Я хочу сделать импорт, который просматривает папку и циклически проходит через найденные там файлы, а затем импортирует материал.Как перебирать файлы внутри папки, зная только имя папки?

В моем проекте у меня есть папка под src/main/resources, но в фактическом банке она будет упакована как папка в корневой каталог (не внутри папки ресурсов), поэтому я не знаю, как получить папку путь, дающий только его имя.

Я попытался через getResources и передал имя папки как строку, а также попробовал что-то вроде File folderPath = new File("./import") (чтобы использовать относительный путь), но это тоже не сработало.

Разница между предлагаемой должности и моя в том, что там, что путь к папке известно (это фиксированное жёстко место) Мне нужно найти, что на основе загрузки классов или нечто подобное

Ниже код, который я с использованием

public static final String IMPORT_FILES_LOCATION ="import"; //folder name 
Enumeration<URL> folderURL = null; 
    try { 
     folderURL = getClass().getClassLoader().getResources(IMPORT_FILES_LOCATION); 
    } catch (IOException e) { 
     // TODO Auto-generated catch block 
     e.printStackTrace(); 
    } 

    if (folderURL != null && folderURL.hasMoreElements()) { 
     File folderFile = new File(folderURL.nextElement().getPath()); 
     File[] filesToImport = folderFile.listFiles(); 
     if(filesToImport.length > 0) { 
      for (File fileToImport : filesToImport) { 
       System.out.println("import stuff"); 
      } 
     } 
    } 

Любые идеи/предложения?

Благодаря

+0

Возможный дубликат [Читать все файлы в папке] (http://stackoverflow.com/questions/1844688/read-all-files-in-a-folder) – aribeiro

+1

Его проблема немного сложнее, чем что при условии, что папка не обязательно является известным путем на HD, а скорее ресурсом pathpath. OP, вы были на правильном пути с 'getResources()'. Не могли бы вы опубликовать код, который вы использовали, когда пытались это сделать? – rmlan

+0

Как упоминалось выше, моя проблема отличается. Если вы посмотрите на другой пост, он знает путь к папке (он жестко запрограммирован). Мне нужно решение, которое найдет эту папку на основе ее имени – Viocartman

ответ

0

Я решил эту проблему путем добавления конфигурационного файла свойства, где местоположение папки импорта хранится. Пользователю будет предложено ввести местоположение, и если это поле осталось пустым, будет предоставлен по умолчанию (у нас есть графический интерфейс для установки модуля)

Он по-прежнему не решает проблему, но это обходное решение, которое работает. Надеюсь, это поможет

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