Как создать новую папку в Android? - PullRequest
0 голосов
/ 14 октября 2018

Я хочу создать новую папку во внешнем хранилище.Я использую этот код:

            val folderMain = "name"

        val f = File(getExternalStorageDirectory(), folderMain)
        if (!f.exists()) {
            f.mkdirs()
        }

После выполнения он работает и создает новую папку во внутренней памяти, а не во внешней памяти.Как я могу создать новую папку во внешнем хранилище?

Я на 100% уверен, что у меня есть внешнее хранилище на моем устройстве, и в нем доступно 14 ГБ свободного места, а расположение /storage/extSdCard.

* 1008.* Я тестировал этот код на двух телефонах Samsung версии Android, jellybean и Kitkat, но с одинаковым результатом.

Ответы [ 3 ]

0 голосов
/ 14 октября 2018

После выполнения он работает и создает новую папку во внутреннем хранилище, а не во внешнем хранилище.

Нет, он создает файл в том, что Android SDK называется внешнее хранилище .

Я на 100% уверен, что на моем устройстве есть внешнее хранилище, и на нем доступно 14 ГБ свободного места, а расположение /storage/extSdCard.

Это означает съемное хранилище .

Как создать новую папку во внешнем хранилище?

Ваш существующий код создает каталог вкорень внешнего хранилища.У вас нет возможности записи в произвольные места на съемном носителе.

Простейшие места для записи на съемном носителе находятся в местах, предоставленных методами getExternalFilesDirs(), getExternalCacheDirs() и getExternalMediaDirs() наContext.Если они возвращают 2+ местоположения, второе и последующие находятся на съемном носителе, и у вас есть полный доступ для чтения / записи к ним.

0 голосов
/ 14 октября 2018

попробуйте этот код:

String fileName = "myfile.zip";
    File ZIP_Directory = new File("/sdcard/MOBstate/");
    ZIP_Directory.mkdirs();        
     File outputFile = new File(PDF_Directory, fileName);
     FileOutputStream fos = new FileOutputStream(outputFile);
0 голосов
/ 14 октября 2018

Вы можете получить ответы на свои вопросы здесь:

https://developer.android.com/training/data-storage

Я также рекомендую проверить результат mkdirs():

if (!f.exists() && !f.mkdirs()) {
    Log.e("mDebug", "Couldn't create " + f.getName());
}
...