我想检查在/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
)中创建此文件?
答案 0 :(得分:4)
我不清楚您是否希望阅读游戏打包的标准assets
文件夹。在这种情况下,您应该使用Gdx.files.internal()
从那里读取,但assets
文件夹在Android上始终是只读的。
如果要在Libgdx“本地存储”(相当于Android internal storage)中创建另一个名为assets/
的目录,则需要先创建目录,然后才能创建文件新目录。只需在文件句柄上调用.mkdirs()
即可确保创建所有必需的父目录。
ProgressFileHandle.file().mkdirs();
ProgressFileHandle.file().createNewFile();