How To Save A File On Android? (firemonkey)
Solution 1:
According to the document Creating an Android App, get the documents path like this:
System.IOUtils.TPath.GetDocumentsPath + System.SysUtils.PathDelim + 'myfile';
Solution 2:
Instead of using System.SysUtils.PathDelim
, you may use
System.IOUtils.TPath.Combine(System.IOUtils.tpath.getdocumentspath,'test.txt');
Combine
chooses between the windows \
and the Linux /
System.IOUtils
must be used in this line instead of setup in the uses clause because there are probably more Tpath initials.
Solution 3:
GetHomePath, return a string with the path. -> 'data/data//files'
You can to use:
Memo.Lines.SaveToFile(format('%s/test.txt', [GetHomePath]));
Or this form
Memo.Lines.SaveToFile(GetHomePath + '/test.txt');
Solution 4:
on my device (and presumably all android devices?) GetHomePath incorrectly gives me /storage/emulated/0/... whereas I need /storage/sdcard0/... to get to the storage visible in Windows Explorer via USB.
so the full path to my files may be '/storage/sdcard0/Android/data/com.embarcadero.(my app name)/files/'
Presumably if you have a plug in SD card this might be sdcard1 or whatever.
You can list the contents of your device storage folder with code like this
P := '/storage/';
if (FindFirst(P + '*', faAnyFile, Sr) = 0) thenrepeat
Memo1.Lines.Add(Sr.Name);
until (FindNext(Sr) <> 0);
FindClose(Sr);
On my device this gives me:
sdcard0 usb emulated
then change S when you want to explore subfolders
Note that the files folder gets emptied each time you recompile and deploy.
Post a Comment for "How To Save A File On Android? (firemonkey)"