Kotlin Android文件创建错误

Kotlin Android文件创建错误,android,kotlin,kotlin-android-extensions,Android,Kotlin,Kotlin Android Extensions,在我的kotlin Android应用程序中,我想在外部存储文件夹中创建一个新文件。我有以下代码: if (Environment.getExternalStorageState() != Environment.MEDIA_MOUNTED) { Log.e("TAG", "${Environment.getExternalStorageState()}") return } var directory: File? = null var file: File? = null

在我的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
也设置了
。但是,当我运行上述代码时,我在
createNewFile
行得到一个异常,即
java.io.IOException:没有这样的文件或目录
。知道我为什么不能创建该文件吗?我确信那里没有以该名称存在的文件,即使存在一个文件,我也希望它被重写。如何修复此问题?

我已经测试了您的代码。这是一个运行时权限问题。请使用运行时权限,它将正常工作。请点击下面的链接

您添加了运行时权限吗?@Pavya在运行时,我没有任何权限对话框本身。我是否需要在清单或代码中添加其他内容以允许android在运行时请求权限?