Я пытаюсь получить содержимое каталога в приложении Swing. Я узнал, что JFileChooser можно использовать для извлечения содержимого определенного каталога (скажем, /X/), но только до одного уровня вниз (x/a.txt или x/b.txt, а не x/y/z.txt). Что, если я хочу получить все содержимое X, Y и даже других внутренних каталогов, содержащихся в более глубоких слоях других папок (y/as/sd/). Должны ли мы запускать какой-либо рекурсивный цикл, чтобы получить такое содержимое, или у нас есть какая-либо утилита для этого. Надеюсь, мой вопрос имел смысл. Нужно предложение!
Как получить каталог и его внутреннее содержимое каталога до дочернего уровня с помощью JFileChooser
comment
Да, рекурсивно получать файлы в каталоге несложно, и это не имеет ничего общего с JFileChooser, но я не уверен в вашей реальной проблеме. Расскажите, пожалуйста, подробнее о вашей конечной цели, о том, что вы хотите делать с этими данными.
- person Hovercraft Full Of Eels   schedule 01.02.2014
comment
Вот код с использованием java nio API stackoverflow.com/a/13539602/295765
- person qza   schedule 01.02.2014
Ответы (1)
Должны ли мы запустить какой-либо рекурсивный цикл, чтобы получить такое содержимое,..
Да.
..или у нас есть какая-нибудь утилита для этого.
Вы говорите, что рекурсивное получение файлов сложно! Это действительно очень легко.
- Создайте метод, который принимает каталог в качестве аргумента.
- Перечислите файлы.
- Check each file:
- If it is a file (as opposed to a directory), add it too an expandable list (e.g.
ArrayList<File>
). - Если это каталог, снова вызовите метод с этим каталогом.
- If it is a file (as opposed to a directory), add it too an expandable list (e.g.
- После завершения этого процесса расширяемый список должен содержать все файлы (не каталоги).
person
Andrew Thompson
schedule
01.02.2014
Или вы можете просто пройтись по дереву файлов с помощью новых нио... но в чем прикол ;) +1
- person MadProgrammer; 01.02.2014
@MadProgrammer Да .. Я склонен отставать на одну версию от текущей основной версии при разработке настольных приложений. Хотя, учитывая недавние опасения по поводу безопасности и автоматическое обновление, я сомневаюсь в целесообразности сохранения такой позиции.
- person Andrew Thompson; 01.02.2014
Мы все еще активно развиваемся под 6 без какого-либо рассмотрения 7 в ближайшем будущем, единственное, что я получаю из 7 прямо сейчас, это алмазный оператор ;)
- person MadProgrammer; 01.02.2014