хранение данных приложения андроида по SD-карте

Для чистой элегантности типичное рекурсивное решение функционального языка довольно хорошо. Это не находится в фактическом синтаксисе языка, но Вы получаете идею (это также hardcoded для использования разделителя запятой):

соединение ([]) =""

соединение ([x]) = соединение "x"

([x, отдых]) = "x", + соединение (отдых)

В действительности Вы записали бы это более универсальным способом, для многократного использования того же алгоритма, но краткий обзор далеко тип данных (не должны быть строки), и операция (не должна быть конкатенация с запятой в середине). Тогда это обычно называют, 'уменьшают', и многим функциональным языкам встроили это, например, умножающий все числа в списке, в Lisp:

(уменьшают # '*' (1 2 3 4 5)), => 120

30
задан Jeff Axelrod 22 August 2012 в 18:22
поделиться

3 ответа

Предупреждение: Этот ответ устарел. Вы должны использовать Environment.getExternalStorageDirectory () , чтобы получить корневой путь к SD-карте, как указано в ответах ниже.

Старый ответ, поэтому комментарии по этому поводу имеют смысл:

Добавление / sdcard / в корень, ваш путь должен направить ваше Android-приложение на использование SD-карты (по крайней мере, это работает с G1). Объекты файловой системы Android дают вам возможность проверять размеры файлов ... поэтому должно быть возможно (если это сложно) написать некоторый код аварийного переключения. Этот код изменит ваш корневой путь, если внутренняя память заполнится.

9
ответ дан 27 November 2019 в 22:57
поделиться

Проблема с использованием SDCard заключается в том, что вы не можете с уверенностью предполагать, что она будет присутствовать всегда, когда она понадобится вашему приложению. С внутренней памятью дело обстоит иначе. Если ваше приложение не использует эти данные для запуска, все будет в порядке.

2
ответ дан 27 November 2019 в 22:57
поделиться

Лучше использовать Environment.getExternalStorageDirectory(), чем жесткий код "/sdcard". Не всегда можно быть уверенным, что имя папки будет так называться. Также класс Environment предлагает метод getExternalStorageState() для проверки доступности внешнего хранилища.

76
ответ дан 27 November 2019 в 22:57
поделиться
Другие вопросы по тегам:

Похожие вопросы: