2016-08-12 5 views
0

В папке /src/img. Мне нужно получить все имена файлов (png файлов) из папки img и всех подпапок. Я не знаю полного пути к папке, поэтому мне нужно только сосредоточиться на ресурсе проекта. Мне нужны они в массиве. Использование Java8 и Eclipse Mars. До сих пор это работает:Как получить файлы из папки проекта

try { 


Files.walk(Paths.get("/home/fixxxer/NetBeansProjects/Installer/src/img/")).forEach(filePath -> { 
      if (Files.isRegularFile(filePath)) { 
       System.out.println(filePath); 
      } 
     }); 
    } catch (IOException ex) { 
     Logger.getLogger(InstallFrame.class.getName()).log(Level.SEVERE, null, ex); 
    } 

Проблема заключается в том, что папка должна называться так: /img потому что внутри проекта Спасибо заранее :)

ответ

2

Вы можете использовать relative paths. Здесь я предполагаю, что имя вашего проекта Installer. В противном случае вы можете отредактировать относительный путь в соответствии с настройкой вашего проекта.

Files.walk(Paths.get(".//src//img//")).forEach(filePath -> { 
       if (Files.isRegularFile(filePath)) { 
        System.out.println(filePath); 
       } 
      }); 
+0

работал с ".//src//img//" – Ralfi

0

Если вы поместите файл

test.png 

под

/src/resources/org/example 

вы можете получить доступ к нему из вашего класса

org.example.InstallFrame 

использованием

final URL resource = InstallFrame.class.getResource("test.png"); 

соответственно

final InputStream resourceAsStream = InstallFrame.class.getResourceAsStream("test.png"); 
+0

Мне нужно, чтобы получить все файлы, а не только один – Ralfi

+1

@Ralfi Вы знаете свои имена, или просто произвольное количество файлов ? Первый из них управляем, используя список имен, второй не покрывается API-интерфейсом класса-загрузчика для загрузки ресурсов, и вам нужно подумать о схеме имен/каталогов для себя (например, с помощью '/ tmp/installer' или любого другого определяемое имя каталога, которое можно использовать на любом компьютере, на котором запущена ваша программа, или настроить путь для пользователей вашей программы). – Smutje

+0

Я не знаю названия печально. Мне нужно получить все файлы. Можете ли вы показать мне пример загрузчика классов api в моем случае? – Ralfi

0

Сначала найдите базовый путь, а затем использовать в своем коде

String basePath = ClassLoader.getSystemResource("").getPath(); 

//move basepath to the path where img directory 
//present in your project using ".." 
//like basepath = basepath+"..\\..\\img"+ 

    Files.walk(Paths.get(testPath)).forEach(filePath -> { 
     if (Files.isRegularFile(filePath)) { 
      System.out.println(filePath); 
     } 
    });