私は、Application.persistentDataPathから返されたパスにファイルをシリアライズ/デシリアライズして、プレーヤーによって作成されたレベルを保存/ロードしています。コードを使用してAndroidデバイスの特定の場所にアクセスする
using (Stream stream = new FileStream(Application.persistentDataPath + @"\" + name + ".LevelData", FileMode.Create, FileAccess.Write, FileShare.None))
{
formatter.Serialize(stream, level);
}
私はこれにアクセスしようとしている理由:しかし、私はDirectory.GetFiles経由で同じパスにアクセスしようとすると、()私がここで0
の値は、私が保存していますどのように返されます場所は、プレイヤーにどのレベルをロードしたいのかを尋ねるメニューポップアップを持つことができるようになっており、作成したすべてのレベルが表示され、選択して編集できるようになります。
これは大きさゼロの文字列配列を返します。
またDirectory.GetFiles(Application.persistentDataPath, "*LevelData", SearchOption.TopDirectoryOnly);
を、Application.persistentDataPathから返されるパスをデバッグした後、私はそれが返すパスは実際に私のモバイルデバイス上に存在していないことに気づきました。そのパスを完成させるフォルダを作成しようとするように、私のデバイスは単に私に許可しませんが、フォルダに何か他の名前を付けるとうまくいきます。
UnityからAndroidデバイスのファイルにアクセスするために必要なライブラリはありますか? Directory.GetFiles()は、Windowsで作業するときに正常に動作します。
あなたはAndroidマニフェストに書き込み権限を含めましたか? – Bijan
私はしませんでしたが、私は、ファイルが正常に作成されていることを前提としていました。 Directory.GetFilesの書き込み権限が必要だと思いますか? –
この投稿を参照してください:http://stackoverflow.com/a/41857019/366064そして許可が必要です – Bijan