提问者:小点点

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


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

<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个答案

匿名用户

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

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

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

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

匿名用户

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

        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->; 媒体