Я хочу записать файлы на внешнее хранилище, и когда я смотрю на 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
Так что я думаю, на реальном устройстве у вас гораздо больше места для записи.