2015-07-10 8 views
1

Я хочу прочитать все файлы из моего пакета без использования всего моего пути к файлу. Например, я могу использовать что-то подобное, чтобы получить все файлы в каталоге.Не удается получить доступ к папке в пакете java

new File("/Users/me/Documents/workspace/testing/src/main/java/resources/").listFiles() 

Когда у меня есть пакет в IntelliJ который выглядит следующим образом:

main 
- java 
--com.testFile 
--resources 

Я прочитал это: Read file from a folder inside the project directory. Однако я хочу иметь возможность сделать это, не указав весь путь.

Для примера объясняется здесь: How to read a file (e.g txt file) from another java package withouth specifying the absolute path?

Я думал, что я мог бы сделать что-то вроде

«SRC/основные/Java/ресурсов», но каждая комбинация Стараюсь терпит неудачу, когда подключен к:

new File("/Users/me/Documents/workspace/testing/src/main/java/resources/").listFiles() 

Я мог бы поклясться, что я сделал это раньше, как это? Я делаю глупую ошибку?

На данный момент он не может найти файл. Это время запуска из файла в файл в Java -> com.thisproject/приложение

Например я вижу:

File folder = new File("src/"); 
File[] listOfFiles = folder.listFiles(); 

имеют listOfFiles быть пустым.

+0

Файл может получить только пути из файловой системы. Вы хотите получить _resource_ из своего проекта. Подобно этому http://stackoverflow.com/questions/16570523/getresourceasstream-returns-null – Sekkuar

+0

В системных путях UNIX, которые начинаются с '/', являются абсолютными путями, если вы хотите использовать относительный путь, не включайте '/ 'в начале. – Titus

+0

@Titus Я попробовал «src/main/java/resources» тоже не получается – Tai

ответ

2

Решено ... Это было действительно странно. Все, что я нашел в Интернете, ссылается на ссылку src/main и т. Д. Это мой путь к файлу.

Однако мне удалось получить к нему доступ через:

new file("java/resources").listFiles(); 

Который работает отлично. Если бы я попытался использовать любую из следующих комбинаций:

new file("/java/resources").listFiles(); 
new file("main/java/resources").listFiles(); 
new file("src/main/java/resources").listFiles(); 

Все они терпят неудачу.

Для получения информации о системе я использую intellij, Mac OS, я работаю над созданным intappij Webapp. Не уверен, что это имеет значение.

Если кто знает, почему src/... не работает, я бы с удовольствием узнал.

+0

Ну, вы используете право IDE? Ваш скомпилированный код, вероятно, перемещается и выполняется в другой папке, чем интересен src/main – Sekkuar

+0

mmm. Спасибо. Я не понимал, что это будет составлено в другом месте. Я должен прочитать об этом – Tai

1

Это работает для меня затмение работает на ОС Windows:

System.out.println(new File("src/").listFiles().length); // printing the no. of files for checking. 

Итак, для вас это будет: "src/main/java/resources/".

+0

Я вижу Папка файла = новый файл ("src /"); Файл [] listOfFiles = folder.listFiles(); где listOfFiles имеет значение null – Tai

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