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

Vik*_*rya 6 java android kotlin nativescript flutter


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

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
    <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
Run Code Online (Sandbox Code Playgroud)

这些权限。

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()
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

我懂了

An error occurred.
java.io.IOException: Read-only file system
Run Code Online (Sandbox Code Playgroud)

我尝试了很多其他东西,从 javatpoint 到官方 java 和 kotlin 教程。但没有一个起作用

Vik*_*rya 7

好的,明白了,没有指定正确的路径。

        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")
Run Code Online (Sandbox Code Playgroud)

然后要检查这一点,请导航到

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

将会看到文件已创建。

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

val path = this.externalCacheDir
Android -> 数据 -> com.your.pkg_name -> 缓存 ->

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

val path = this.getExternalFilesDirs(null).first()
val path = Environment.getExternalStorageDirectory().getPath()

打印并检查路径是什么。