android - 如何使用 Kotlin 将数据文件夹中的 .txt 文件复制到 Android 的下载文件夹中?
问题描述
当按下按钮时,我想将我的应用程序包文件夹中的 .txt 文件复制到下载文件夹。这是按钮的代码:
binding_second.btnDone.setOnClickListener(object : View.OnClickListener {
override fun onClick(v: View?) {
var this_dir = getExternalFilesDir(this_filename)
var target_dir = File("sdcard/Download/"+ this_filename)
this_dir?.copyTo(target_dir)
println("Copy succeeded")
}
})
运行此代码时,它不会从源位置复制 .txt 文件及其内容并在下载文件夹中进行复制,而是在下载文件夹中创建一个具有 .txt 文件名称的文件夹。我将不胜感激任何帮助!
解决方案
您对 getExternalFilesDir 的工作方式感到困惑。它的参数不是目录中的文件名。它是外部文件目录的类型,例如 Environment.DIRECTORY_PICTURES 用于图片。由于您传递了无效值,因此您将获得默认目录。然后你复制那个目录。
相反,您想要的是var this_dir = File(getExternalFilesDir(null), this_filename);
这将获得一个相对于 getExternalFilesDir 目录具有给定名称的文件。
推荐阅读
- scala - 用于链表样式函数调用的 CPS 样式
- jdeveloper - JAVA正则表达式字符识别
- java - 为什么用户ID不按顺序输入?
- r - 嵌套循环查找最新评论
- c++ - 在下面的代码中使用释放和移动的区别
- ruby-on-rails - 是否可以使用 Liquid shopify 读取本地文件内容并将其内容加载到页面中
- python - 我已经在我的电脑上尝试过,它运行良好,但在 pyschools 网站上仍然出现“浮点除以零”。为什么 ??:
- dart - 缺少 Getter 和 Setter 的具体实现
- dialogflow-es - 使用 java dialogflowv2 生成包含快速回复的 WebhookResponse
- sql - 我的数据只显示一个,但数据应该不止一个