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

问题描述 投票:1回答:2

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

<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

我尝试了很多其他事情,从javatpoint到官方的Java和Kotlin教程。但无济于事

java android flutter kotlin nativescript
2个回答
0
投票

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

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

注意:Environment.getExternalStorageDirectory()在API级别29 java中已弃用

更多详细信息,请参阅Environment.getExternalStorageDirectory() deprecated in API level 29 java


0
投票

我认为您未指定正确的路径。试试这个

        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.externalCacheDirAndroid->数据-> com.your.pkg_name->缓存->

© www.soinside.com 2019 - 2024. All rights reserved.