- Home /
Unity iPhone: Can I store data on the iPhone to be used later?
Hy,
I would like to save data on the iPhone that is going to be send (at a defined time) to another device. Can I do that?
Thanks!
Answer by spinaljack · Jun 02, 2010 at 03:42 PM
From the unity iphone manual:
You can save required files to a Documents folder next to your game's Data folder.
public static string GetiPhoneDocumentsPath ()
{
// Your game has read+write access to /var/mobile/Applications/XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX/Documents
// Application.dataPath returns
// /var/mobile/Applications/XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX/myappname.app/Data
// Strip "/Data" from path
string path = Application.dataPath.Substring (0, Application.dataPath.Length - 5);
// Strip application name
path = path.Substring(0, path.LastIndexOf('/'));
return path + "/Documents";
}
You can Cache downloaded asset bundle using .NET file API and for reuse it in the future by loading it via WWW class
// Code designed for caching on iPhone, cachedAssetBundle path must be different when running in Editor
// See code snippet above for getting the path to your Documents folder
private var cachedAssetBundle : "path to your Documents folder" + "/savedassetbundle.assetbundle";
var cache = new System.IO.FileStream(cachedAssetBundle, System.IO.FileMode.Create);
cache.Write(download.bytes, 0, download.bytes.Length);
cache.Close();
Debug.Log("Cache saved: " + cachedAssetBundle);
In short, yes you can save files on the iphone with the System.IO.FileStream
Since Unity3.3, Application.persistentDatapath can be used, removing the need to edit the Application.dataPath string. $$anonymous$$ore can be read here.
$$anonymous$$ore can be read here: http://www.previewlabs.com/file-io-in-unity3d/
(apparently html-style hyperlinks don't work in the comments here)
If you place a "Using" statement in the beginning/top of your .net/mono files you can remove the long paths eg. System.IO.FileStream can be shortned to FileStream
Answer by ZammyIsOnFire · May 07, 2015 at 09:15 AM
The API you want to use to get path to Documents folder of an App (where things can be persistently stored) is Application.persistentDataPath.
Answer by unity fly · Dec 02, 2013 at 07:07 AM
how can i delete saved data which i stored at persistent data path from the application ? can anyone suggest ?
Do you know the file's location? If you placed a file at a path like Path.Combine(Application.persistentDataPath, "myFile")
, you could also check File.Exists()
with that path, or call File.Delete()
with that path to remove the file.
Answer by belly123456 · Jan 06, 2017 at 10:22 AM
Yep you can retrieve data by yourself. There are programs to do that. For example File Manager App For Iphone I used it few times.it's free and it works as good as can be expected. The main thing is to stop using the external hard disk until you use this tool, and avoid writing any files to it.