当前位置: 首页 > 知识库问答 >
问题:

如何使用kotlin在内部存储中创建文件夹和文件

墨承泽
2023-03-14

我正在尝试在我的清单中的内部存储上创建文件和文件夹

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
    <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>

这些权限。

fun test(view: View) {
        try {
            val myObj = File("filename.txt")
            if (myObj.createNewFile()) {
                println("File created: " + myObj.name)
            } else {
                println("File already exists.")
            }
        } catch (e: IOException) {
            println("An error occurred.")
            e.printStackTrace()
        }
    }
}

我来搞定这个

An error occurred.
java.io.IOException: Read-only file system

我尝试了很多其他东西,从JavaPoint到官方的Java和kotlin教程。 但没有一个奏效

共有2个答案

殳自怡
2023-03-14

我认为您没有指定正确的路径。
请尝试此操作

        val data: String = "om namah shivaya"
        val path = this.getExternalFilesDir(null)

        val folder = File(path, "avalakki")
        folder.mkdirs()

        println(folder.exists()) // u'll get true 

        val file = File(folder, "file_name.txt")
        file.appendText("$data")

然后要检查这一点,请转到

Android->; 数据->; com.your.pkg_name->; 文件->;

在那里,您将看到创建的文件。

注意:-您可以使用不同的路径

VAL path=this.ExternalCachedir
Android->; 数据->; com.your.pkg_name->; 缓存->;

val path=this.externalmediadirs.first()
Android->; 媒体

夏祺然
2023-03-14

您试图在根目录中创建文件,这是不允许的。 您可以使用environment.getExternalStorageDirectory()在内部存储/SD卡中创建文件。 使用以下代码:

val myObj = File(Environment.getExternalStorageDirectory()+"/"+"filename.txt")

注意:Environment.getExternalStorageDirectory()在API级别29 Java中不推荐使用

请参阅API级别29 Java中已弃用的Environment.getExternalStorageDirectory()以了解更多详细信息。

 类似资料:
  • 我想在GitHub资源库中创建一个文件夹,并想在该文件夹中添加文件。我如何实现这一点?

  • 我的目标是在内部存储上创建一个XML文件,然后通过share Intent发送它。 我能够使用以下代码创建XML文件 我一直在尝试检索输出文件的Uri以共享它。我首先尝试通过将文件转换为Uri来访问该文件 此返回file:///data/data/com.my.package/files/myfile.xml但我似乎无法将此附加到电子邮件、上载等。 如果我手动检查文件长度,它是正确的,并显示有一个

  • 这可以通过元数据实现吗?当在父文件夹中创建一个新文件/文件夹时,我是否也可以通过编程方式更新父文件夹的元数据,以便说:“嘿,在这个文件夹中有这些特定的文件?”

  • 我想在我新创建的GitHub存储库中添加一个新文件夹,而不安装用于(Mac、Linux和Windows)的Git设置。有可能这样做吗? 当我在不同的系统/机器上工作时,我不能让Git一直陪伴在我身边。我知道如何在上的存储库中直接添加文件。我们也可以创建一个文件夹吗?

  • 问题内容: 我的开发电话正在运行。 在我的应用程序中,我试图在外部存储上创建一个文件夹,该文件夹将存储我的应用程序的调试信息。基本上,它将包含应用程序执行的所有命令,因此,当用户遇到问题时,我可以选择使它们从debug文件夹发送信息给我进行分析。 我首先尝试将文件写入文件夹,但发现创建文件夹时出错。最初,我使用,然后又移至也不起作用。 我有我的清单。 这是用于创建文件夹的代码: 这是我也尝试过的:

  • 为了说明这一点,我正在创建一个treeview,它将在用户创建一个文件夹后实例化自己,并且所述文件夹将被添加为TreeItem。 我现在有这个: 多谢了。

  • 问题内容: 如何在Java中创建一个空文件夹? 问题答案:

  • 消息:org.xml.sax.SAXParseException:元素类型“meta”必须由匹配的结束标记“”终止。(javax.xml.Transform.TransformerException)代码:mule_error---2----------------------------“** HTM文件中的Meta标记应该与该标记完全相同地创建。 如何解决这些问题?