Titanium - внешнее хранилище Android - создайте новый каталог, а затем запишите в него файлы

Можем ли мы не просто создавать новый каталог программно на внешней SD-карте (а не на внутренней памяти устройства) на Android и не можем ли мы записывать файлы на SD-карту?

Титан настолько ограничен, чтобы всегда записывать файлы во внутреннюю память даже после использования Ti.Filesystem.externalStorageDirectory?

Может ли кто-нибудь, кто когда-либо мог создать новый каталог программно на SD-карте в Android, напишет ответ здесь, или никто не должен что-то писать на внешней SD-карте?

Ответ 1

Вы можете использовать класс System для получения переменных хранилища, например ниже

Чтобы получить внутреннюю SD-карту, вы можете использовать

String extStore = System.getenv("EXTERNAL_STORAGE");
File f_exts = new File(extStore);

Чтобы получить внешнюю SD-карту, вы можете использовать

String secStore = System.getenv("SECONDARY_STORAGE");
File f_secs = new File(secStore);

Вы можете выбрать, где создать папку и какой из них использовать.

ИЗМЕНИТЬ

Environment.getExternalStorageDirectory() Подробности

  • Возврат первичного общего/внешнего каталога хранения.
  • Этот каталог в настоящее время недоступен, если он был установлен пользователем на своем компьютере, удален с устройства или возникла другая проблема. Вы можете определить его текущее состояние с помощью getExternalStorageState().

Примечание. Не путайте слово "внешний" здесь. Этот каталог лучше воспринимать как медиа/общую память. Это файловая система, которая может хранить относительно большой объем данных и совместно используется во всех приложениях (не обеспечивает разрешения). Традиционно это SD-карта, но она также может быть реализована как встроенное хранилище в устройстве, которое отличается от защищенного внутреннего хранилища и может быть смонтировано как файловая система на компьютере.

Ссылка из Environment

Надеюсь, что это поможет.

Ответ 2

попробуйте создать папку и файл в sdcard

File localFile = new File(Environment.getExternalStorageDirectory(),"/data/create_new_folder_name/");
            if (!localFile.exists()) {
                localFile.mkdir();
            }
            try{
                File gpxfile = new File(localFile, "yourfilename.xyz");
                FileWriter writer = new FileWriter(gpxfile,true);
                writer.append("your file text");
                writer.flush();
                writer.close();
            } catch (IOException e) {
                e.printStackTrace();
            }

manifest.xml

 <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
 <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />

Ответ 3

Используйте платформу доступа к хранилищу для записи на карту micro SD. Google для ACTION_OPEN_DOCUMENT_TREE и ACTION_OPEN_DOCUMENT.

Кроме того, вы можете писать обычным способом в одном конкретном каталоге приложения на карте micro SD. Посмотрите на вторую запись, возвращаемую getExternalFilesDirs().