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
在我的 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