Ответ 1
В соответствии с документом Создание приложения для Android найдите путь к документам следующим образом:
System.IOUtils.TPath.GetDocumentsPath + System.SysUtils.PathDelim + 'myfile';
Как сохранить файл локально на устройстве Android, используя Delphi (XE5, Firemonkey)?
Что-то простое, как
Memo.Lines.SaveToFile('test.txt')
похоже, не работает. В результате появляется следующее сообщение об ошибке:
"Невозможно создать файл" /test.txt ". Не каталог.
В соответствии с документом Создание приложения для Android найдите путь к документам следующим образом:
System.IOUtils.TPath.GetDocumentsPath + System.SysUtils.PathDelim + 'myfile';
Вместо использования System.SysUtils.PathDelim
вы можете использовать
System.IOUtils.TPath.Combine(System.IOUtils.tpath.getdocumentspath,'test.txt');
Combine
выбор между окнами \
и Linux /
System.IOUtils
должен использоваться в этой строке вместо настройки в предложении использования, потому что, вероятно, больше инициалов Tpath.
GetHomePath, верните строку с контуром. - > 'data/data//files'
Вы можете использовать:
Memo.Lines.SaveToFile(format('%s/test.txt', [GetHomePath]));
Или эта форма
Memo.Lines.SaveToFile(GetHomePath + '/test.txt');
на моем устройстве (и, предположительно, на всех устройствах Android?) GetHomePath неправильно дает мне /storage/emulated/ 0/... тогда как мне нужно /storage/sdcard 0/..., чтобы добраться до хранилища, видимого в проводнике Windows через USB.
поэтому полный путь к моим файлам может быть '/storage/sdcard0/Android/data/com.embarcadero.(my имя приложения)/files/'
Предположительно, если у вас есть плагин на SD-карте, это может быть sdcard1 или что-то еще.
Вы можете указать содержимое папки вашего устройства хранения с кодом, подобным этому
P := '/storage/';
if (FindFirst(P + '*', faAnyFile, Sr) = 0) then
repeat
Memo1.Lines.Add(Sr.Name);
until (FindNext(Sr) <> 0);
FindClose(Sr);
На моем устройстве это дает мне:
sdcard0 USB эмулировать
затем измените S, если вы хотите исследовать подпапки
Обратите внимание, что папка файлов становится очищенной при каждом повторном компиляции и развертывании.