Java LibGDX isDirectory()返回false,即使它是一个目录

Java LibGDX isDirectory()返回false,即使它是一个目录,java,file-io,libgdx,Java,File Io,Libgdx,我目前正在尝试获取目录中的文件列表。 当我试图获取目录的文件句柄时,它会说它是一个文件,但它不是。然后,当我从中读取readString()时,它返回其中文件的文件名。这只发生在IDE(EclipseNeon.2)中,但当我导出到JAR时,当我尝试运行时,它会崩溃 如何让LibGDX将其识别为目录并获取该目录中的所有文件。最后一件事是,我看到许多Anwer说list()在桌面上不起作用,但我也读到它起作用。有人能检查一下这是不是真的吗 public void loadEnemyBaseTypes

我目前正在尝试获取目录中的文件列表。 当我试图获取目录的文件句柄时,它会说它是一个文件,但它不是。然后,当我从中读取
readString()
时,它返回其中文件的文件名。这只发生在IDE(EclipseNeon.2)中,但当我导出到JAR时,当我尝试运行时,它会崩溃

如何让LibGDX将其识别为目录并获取该目录中的所有文件。最后一件事是,我看到许多Anwer说
list()
在桌面上不起作用,但我也读到它起作用。有人能检查一下这是不是真的吗

public void loadEnemyBaseTypes(){
    ArrayList<FileHandle> enemyBaseFiles = new ArrayList<FileHandle>();
    FileHandle enemyBaseDirectory = 
        Gdx.files.internal("prototypes/enemybases");

    System.out.println(enemyBaseDirectory.exists());
    System.out.println(enemyBaseDirectory.isDirectory());

    String[] fileNames = enemyBaseDirectory.readString().split("\n");   

    for(int i = 0; i < fileNames.length; i++) 
        System.out.println(fileNames[i]);   
}
public void loadEnemyBaseTypes(){
ArrayList-enemyBaseFiles=新建ArrayList();
FileHandle enemyBaseDirectory=
Gdx.files.internal(“原型/enemybase”);
System.out.println(enemyBaseDirectory.exists());
System.out.println(enemyBaseDirectory.isDirectory());
String[]filename=enemyBaseDirectory.readString().split(“\n”);
对于(int i=0;i
IDE输出

正确

基础0.enybse
基础1.enybse
碱基2.enybse
基础3.enybse
基础4.enybse
基_5.enybse

终端输出

正确

线程“LWJGL应用程序”java.lang.NullPointerException中出现异常
位于java.io.FilterInputStream.read(未知源)
位于sun.nio.cs.StreamDecoder.readBytes(未知源)
位于sun.nio.cs.StreamDecoder.implRead(未知源)
在sun.nio.cs.StreamDecoder.read(未知源)
位于java.io.InputStreamReader.read(未知源)
在java.io.Reader.read(未知源)
在com.badlogic.gdx.files.FileHandle.readString(FileHandle.java:207)上
在com.badlogic.gdx.files.FileHandle.readString(FileHandle.java:191)
位于dev.thomaslienbacher.simplegame.controllers.EnemyManager.loadEnemyBaseTypes(EnemyManager.java:53)
位于dev.thomaslienbacher.simplegame.controllers.EnemyManager.loadAssets(EnemyManager.java:33)
在dev.thomaslienbacher.simplegame.scene.gamesene.loadAssets(gamesene.java:62)
在dev.thomaslienbacher.simplegame.Game.update(Game.java:149)
在dev.thomaslienbacher.simplegame.Game.render(Game.java:134)
位于com.badlogic.gdx.backends.lwjgl.LwjglApplication.mainLoop(LwjglApplication.java:223)
在com.badlogic.gdx.backends.lwjgl.LwjglApplication$1.run(LwjglApplication.java:124)


我在Assets
list->friend
中创建了嵌套文件夹,然后在friend文件夹中保留了三个名为
1.png
2.png
3.png
.png
文件

FileHandle enemyBaseDirectory = Gdx.files.internal("list/enemy");

System.out.println(enemyBaseDirectory.exists());
System.out.println(enemyBaseDirectory.isDirectory());

FileHandle allList[]=enemyBaseDirectory.list();

for (FileHandle fileHandle:allList)
    System.out.println(fileHandle);
IDE上的输出
Run
选项卡:

true
true
列表/敌人/1.png
列表/敌人/2.png
列表/敌人/3.png

IDE本地
终端上没有任何输出。我的IDE是
IntellijIDEA
,希望在其他IDE上的结果应该是相同的

这是我的预期产出


FileHandle的
readString()
使用平台的默认字符集将整个文件读入字符串,如果文件句柄表示目录、不存在或无法读取,则抛出
GdxRuntimeException

您在哪个平台上运行?对我来说,在Windows上,内部文件句柄上的
list()
返回一个空数组,正如基于该方法的Javadocs所预期的那样。我用Intellij IDEA尝试了Windows和Mac,它给了我一个非零长度数组。根据文档,它应该是一个零长度数组,所以我尝试了EclipseNeon.3,然后得到了零长度数组。为什么有些IDE给我非零长度数组?