【发布时间】:2021-05-10 10:00:27
【问题描述】:
我正在尝试在文件系统上创建一个文件,但我仍然收到此异常:
private fun getTempFolder(): File {
val directoryFolder =
File(Environment.getExternalStorageDirectory(), "sample-take-image")
directoryFolder.mkdirs()
return directoryFolder
}
private fun getTempFile(): File {
val timeStamp = SimpleDateFormat("yyyyMMdd_HHMMss", Locale.getDefault()).format(Date())
return File(
getTempFolder().absolutePath,
"image".plus(Calendar.getInstance().timeInMillis).plus(timeStamp).plus(".jpg")
)
}
private fun saveImageToFile(bitmap: Bitmap? = null): String? {
return try {
val file = getTempFile()
Timber.e("Path: + : ${file.absolutePath}")
file.createNewFile()
val fOut = FileOutputStream(file)
bitmap?.apply {
this.compress(Bitmap.CompressFormat.JPEG, 100, fOut)
}
fOut.flush()
fOut.close()
file?.absolutePath.getDefault()
} catch (e: Exception) {
e.printStackTrace()
""
}
}
即使我在拍完照片后得到了链接:
:/storage/emulated/0/sample-take-image/image162064003789420210510_160517.jpg
那么有人可以告诉我为什么在这种情况下我无法创建文件。我目前使用的是 Android 11 与
**compileSdkVersion 30
buildToolsVersion "30.0.2"
minSdkVersion 26**
【问题讨论】:
-
directoryFolder.mkdirs()编码错误。更好:if ( ! directoryFoldes.exists() if ( !directoryFolder.mkdirs()) return;
标签: java android android-studio file kotlin