Libgdx Как получить список файлов в каталоге?

Итак, я пытаюсь получить список файлов в каталоге с помощью метода handle.list(), но он возвращает пустой список, хотя в каталоге есть файлы. Мне кажется странным, что он работает на устройстве, но он не работает на рабочем столе. Кажется, я знаю, в чем проблема, но я не знаю, как ее решить. В описании метода говорится: "На рабочем столе FileType.Internal дескриптор каталога в пути к классам возвращает массив с нулевой длиной", но нет другого способа, кроме этого, так что вы, ребята, думаете, что я могу сделать?

Ответы

Ответ 1

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

Как это:

FileHandle dirHandle;
if (Gdx.app.getType() == ApplicationType.Android) {
   dirHandle = Gdx.files.internal("some/directory");
} else {
  // ApplicationType.Desktop ..
  dirHandle = Gdx.files.internal("./bin/some/directory");
}
for (FileHandle entry: dirHandle.list()) {
   // yadda ...
}

Для более подробной информации, смотрите: http://bitiotic.com/blog/2012/05/15/libgdx-internal-files-hacks/

Обновление: это больше не правильно. Этот префикс пути "./bin/" не нужно добавлять - он работает хорошо, не добавляя его и не работая при его добавлении. Так что это решение устарело.