unity persistentdatapath data application unity3d unityscript

unity3d - application - unity persistentdatapath windows



ApplicationData.persistentDataPath Unity Editor para Android (1)

¿Alguien sabe, dónde tengo que colocar un archivo (archivo sqlite) en la estructura de directorio del proyecto de unidad, para que, después de la compilación e instalación de apk, el archivo permanezca almacenado en persistentDataPath en el lado de Android?

¡Gracias por adelantado!


Directamente dentro de la carpeta Assets, cree una carpeta con el nombre "StreamingAssets" y coloque su archivo de base de datos sqlite en esta carpeta y luego use el siguiente código para extraer y copiar la base de datos sqlite a persistentDataPath:

void InitSqliteFile (string dbName) { // dbName = "example.sqlite"; pathDB = System.IO.Path.Combine (Application.persistentDataPath, dbName); //original path string sourcePath = System.IO.Path.Combine (Application.streamingAssetsPath, dbName); //if DB does not exist in persistent data folder (folder "Documents" on iOS) or source DB is newer then copy it if (!System.IO.File.Exists (pathDB) || (System.IO.File.GetLastWriteTimeUtc(sourcePath) > System.IO.File.GetLastWriteTimeUtc(pathDB))) { if (sourcePath.Contains ("://")) { // Android WWW www = new WWW (sourcePath); // Wait for download to complete - not pretty at all but easy hack for now // and it would not take long since the data is on the local device. while (!www.isDone) {;} if (String.IsNullOrEmpty(www.error)) { System.IO.File.WriteAllBytes(pathDB, www.bytes); } else { CanExQuery = false; } } else { // Mac, Windows, Iphone //validate the existens of the DB in the original folder (folder "streamingAssets") if (System.IO.File.Exists (sourcePath)) { //copy file - alle systems except Android System.IO.File.Copy (sourcePath, pathDB, true); } else { CanExQuery = false; Debug.Log ("ERROR: the file DB named " + dbName + " doesn''t exist in the StreamingAssets Folder, please copy it there."); } } } }