2013-03-21 64 views
0

我想檢查我的/assets/game/目錄中是否有文件level.xml,如果它不存在,我想創建它。我用這個代碼:Android和LibGDX:在本地存儲中創建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: No such file or directory

它的工作原理,如果我改變 Gdx.files.local("assets/game/level.xml");Gdx.files.local("level.xml");但我不明白爲什麼。如何在子目錄中創建此文件(assets/game)?

回答

3

我不清楚您是否希望從您的遊戲隨附的標準assets文件夾中讀取。在這種情況下,您應該使用Gdx.files.internal()進行讀取,但assets文件夾在Android上始終是隻讀的。

如果要在Libgdx「本地存儲」(相當於Android internal storage)中創建名爲assets/的另一個目錄,則需要創建目錄,然後才能在新目錄中創建文件。只需在文件句柄上調用.mkdirs()以確保創建所有必需的父目錄。

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

我試圖保存'Gdx.files.external( 「路徑/到/文件」)'外部文件,只好用'getParentFile()''之前mkdirs()'或文件將也是一個目錄。 在OP的情況將是:。 'ProgressFileHandle.file()getParentFile()mkdirs();'' ProgressFileHandle.file()createNewFile();' 參考文獻[這裏](HTTP:/ /stackoverflow.com/a/15212890/1136409)。 – nils 2013-09-03 21:28:55