Kotlin Android 文件创建错误

Kotlin Android file creation error

在我的 kotlin Android 应用程序中,我想在外部存储文件夹中创建一个新文件。我有以下代码:

if (Environment.getExternalStorageState() != Environment.MEDIA_MOUNTED) {
    Log.e("TAG", "${Environment.getExternalStorageState()}")
    return
}

var directory: File? = null
var file: File? = null

directory = File(Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOCUMENTS), "SecretsApp")
try {
        directory?.mkdirs()
} catch (e: SecurityException) {
        Log.e("TAG", e.toString())
        return
}


if (directory != null) {
    try {
        var filename = "$groupName-privatekey.secretsapp"
        Log.i("AttachmentProcessing", filename)
        file = File(directory, filename)
        var created = file.createNewFile()
    } catch(e: Exception) {
        Log.e("TAG", e.toString()
        return
    }
}

我的 manifest.xml 也设置了 <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />。但是,当我 运行 上面的代码时,我在 createNewFile 行得到一个异常 java.io.IOException: No such file or directory。知道为什么我无法创建文件吗?我确定那里不存在该名称的文件,即使存在文件,我也希望将其覆盖。如何解决这个问题?

我已经测试了你的代码,这是运行时权限的问题,请使用运行时权限,它会起作用。关注下方link https://developer.android.com/training/permissions/requesting.html