首页 > 解决方案 > 如何使用 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 文件名称的文件夹。我将不胜感激任何帮助!

标签: androidkotlin

解决方案


您对 getExternalFilesDir 的工作方式感到困惑。它的参数不是目录中的文件名。它是外部文件目录的类型,例如 Environment.DIRECTORY_PICTURES 用于图片。由于您传递了无效值,因此您将获得默认目录。然后你复制那个目录。

相反,您想要的是var this_dir = File(getExternalFilesDir(null), this_filename); 这将获得一个相对于 getExternalFilesDir 目录具有给定名称的文件。


推荐阅读