Как скопировать в Kotlin из папки «Ресурсы» во внешнее или внутреннее хранилище Android Studio

#kotlin #assets

Вопрос:

Я создал несколько кодов, но все на Java… и я попытался использовать ApplicationContext.assets, но ничего

Есть какая-нибудь идея?

Спасибо и с уважением

Ответ №1:

Эта функция скопирует файл из папки «Ресурсы» и сохранит его во внешнем хранилище:

 fun copyAssets(context: Context) {  val assetManager: AssetManager = context.assets  var files: Arraylt;Stringgt;? = null  try {  files = assetManager.list("")   if (files != null) for (filename in files) {  var `in`: InputStream? = null  var out: OutputStream? = null  try {  `in` = assetManager.open(filename)  val outFile = File(context.getExternalFilesDir(null), filename)  out = FileOutputStream(outFile)  copyFile(`in`, out)  } catch (e: IOException) {  Log.e("tag", "Failed to copy asset file: $filename", e)  } finally {  if (`in` != null) {  try {  `in`.close()  } catch (e: IOException) {  e.printStackTrace()  }  }  if (out != null) {  try {  out.close()  } catch (e: IOException) {  e.printStackTrace()  }  }  }  }   } catch (e: IOException) {  Log.e("tag", "Failed to get asset file list.", e)  }  }  @Throws(IOException::class) private fun copyFile(`in`: InputStream?, out: OutputStream) {  val buffer = ByteArray(1024)  var read: Int? = null  while (`in`?.read(buffer).also({ read = it!! }) != -1) {  read?.let { out.write(buffer, 0, it) }  } }  

Комментарии:

1. Спасибо, что это сработало. Как добавить папку в выходной файл? еще раз спасибо!

2. Хорошо, нужно только добавить папку здесь: val outFile = Файл(context.getExternalFilesDir(null), «/Новая папка/» имя файла)