Запись в хранилище файлов - PullRequest
0 голосов
/ 14 марта 2020

Я хочу записать файлы на внешнее хранилище, и когда я смотрю на usableSpace для context.getExternalFilesDir(Environment.DIRECTORY_DOWNLOADS), он говорит, что это всего 515,74 МБ.

Это типичный usableSpace размер каталога? Что если вам понадобится больше места для записи, как бы вы справились с этим сценарием?

private fun getStorageDirectory(): File {
    return if (isExternalStorageWritable()) {
        context.getExternalFilesDir(Environment.DIRECTORY_DOWNLOADS)
    } else {
        context.filesDir
    }
}


private fun getUsableSpace(): Long {
    return getStorageDirectory()?.usableSpace ?: 0L
}

Обновление

При тестировании на эмуляторе пространство usableSpace для различных каталогов хранения выглядит следующим образом

DEBUG ~~ [context.getExternalFilesDir(Environment.DIRECTORY_DOWNLOADS).usableSpace 515739648] 515.74MB
DEBUG ~~ [context.getExternalFilesDir(null).usableSpace 515739648] 515.74MB
DEBUG ~~ [context.filesDir.usableSpace 515739648] 515.74MB
DEBUG ~~ [context.externalCacheDir.usableSpace 515735552] 515.74MB
DEBUG ~~ [context.cacheDir.usableSpace 515735552] 515.74MB

При тестировании на Google Pixel XL используемое пространство для различных каталогов хранения выглядит следующим образом:

DEBUG ~~ [context.getExternalFilesDir(Environment.DIRECTORY_DOWNLOADS).usableSpace 79697793024] 79.70GB
DEBUG ~~ [context.getExternalFilesDir(null).usableSpace 79697793024] 79.70GB
DEBUG ~~ [context.filesDir.usableSpace 79697793024] 79.70GB
DEBUG ~~ [context.externalCacheDir.usableSpace 79697764352] 79.70GB
DEBUG ~~ [context.cacheDir.usableSpace 79697760256] 79.70GB

Так что я думаю, на реальном устройстве у вас гораздо больше места для записи.

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