1

/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ですか?

4

1 に答える 1

4

assetsゲームにパッケージ化されている標準フォルダーから読み取ることを期待しているかどうかはわかりません。Gdx.files.internal()その場合、そこから読み取るために使用する必要がありますが、そのassetsフォルダーは常に Android で読み取り専用になります。

Libgdx の「ローカル ストレージ」(Androidの内部ストレージassets/に相当) で呼び出される別のディレクトリを作成する場合は、新しいディレクトリにファイルを作成する前にディレクトリを作成する必要があります。ファイル ハンドルを呼び出すだけ で、必要なすべての親ディレクトリが作成されていることを確認できます。.mkdirs()

ProgressFileHandle.file().mkdirs();
ProgressFileHandle.file().createNewFile();
于 2013-03-21T16:11:20.063 に答える