提问人:Sdr 提问时间:10/26/2023 最后编辑:SörenSdr 更新时间:10/27/2023 访问量:30
Android File.createTempFile 抛出 IOException
Android File.createTempFile throwing IOException
问:
一段时间以来一直在敲打我的头(~16 小时)。查找了互联网上到处搜索的 SO 帖子。也尝试用 createNewFile() api 替换,也没有用。对于它的一生,不知道是什么原因造成的。帮助赞赏。下面的代码片段,
fun createImgFile(context: Context): File? {
return try {
val fileTimeStamp: String = SimpleDateFormat("yyyy/MM/dd").format(Date())
val fileName = "MyImg_$fileTimeStamp"
File.createTempFile(fileName, null, context.cacheDir)
} catch (exception: IOException) {
exception.printStackTrace()
null
}
}
传递的上下文是来自可组合函数的 LocalContext.current。在运行 Android API 33 的 Pixel3a 模拟器上运行。
将 createTempFile() 替换为 file.createNewFile()。我注意到的一件事是,当简单地创建一个文件引用时(即只是在内存中,没有在磁盘上创建任何内容),事情就会起作用。
答:
1赞
Mohammad Fallah
10/26/2023
#1
在您的情况下,IO 异常是由于您提供的路径。 因为您提供的名称是包含斜杠,这意味着您正在一个不存在的目录中创建一个文件,所以要解决这个问题,您只需将日期的格式更改为另一个排除斜杠字符即可。
试试这个:
val fileTimeStamp: String = SimpleDateFormat("yyyy-MM-dd").format(Date())
val fileName = "MyImg_$fileTimeStamp"
评论
0赞
Sdr
10/26/2023
谢谢!现在,这是一个伟大的眼睛。衷心感谢。
评论