Android和LibGDX:在本地存储中创建XML文件

时间:2013-03-21 14:59:11

标签: android file libgdx

我想检查在/assets/game/目录中是否有文件level.xml,如果它不存在,我想创建它。我使用这段代码:

private static void LoadXML() {
      ProgressFileHandle = Gdx.files.local("game/level.xml");
      if (!ProgressFileHandle.exists()) {
         try {
            ProgressFileHandle.file().createNewFile();
         } catch (IOException e) {
            e.printStackTrace();
         }
      } else ProgressFileHandle.file().readString();
}

此代码不起作用,我收到错误:

  

java.io.IOException:没有这样的文件或目录

如果我改变它会起作用 Gdx.files.local("assets/game/level.xml");Gdx.files.local("level.xml");但我不明白为什么。如何在子目录(assets/game)中创建此文件?

1 个答案:

答案 0 :(得分:4)

我不清楚您是否希望阅读游戏打包的标准assets文件夹。在这种情况下,您应该使用Gdx.files.internal()从那里读取,但assets文件夹在Android上始终是只读的。

如果要在Libgdx“本地存储”(相当于Android internal storage)中创建另一个名为assets/的目录,则需要先创建目录,然后才能创建文件新目录。只需在文件句柄上调用.mkdirs()即可确保创建所有必需的父目录。

ProgressFileHandle.file().mkdirs();
ProgressFileHandle.file().createNewFile();