java.io.FileNotFoundException 打开失败:ENOENT(没有那个文件或目录)
java.io.FileNotFoundException open failed: ENOENT (No such file or directory)
我有一个用于从裁剪库创建图像的临时文件,我可以在设备文件资源管理器中看到该文件,但是当我尝试打开该文件时出现此错误:
java.io.FileNotFoundException: file:/data/user/0/com.example.demo/cache/.tmp/cropped1651879842159823361.png: open failed: ENOENT (No such file or directory)
文件是这样创建的:
val croppedImageFile = File.createTempFile("cropped", ".png", viewModel.tempPath)
val destinationUri = Uri.fromFile(croppedImageFile)
viewModel.tempPath 就是以下内容:
viewModel.tempPath = "${this.cacheDir}/.tmp"
我可以看到该文件已创建并且有效,但是当我尝试访问它时,它声称它不存在。我只是通过 File(uri.toString())
打开文件。在视图模型中
我不确定哪里出了问题以及为什么找不到文件。如果这很重要,我使用的是 google 播放的模拟器,它是 Android 11.
您需要使用 new File(uri.getPath())
打开文件。
uri.toString()
returns 作为字符串的 URI,表示“file://path/to/file”,这不是有效路径。
我有一个用于从裁剪库创建图像的临时文件,我可以在设备文件资源管理器中看到该文件,但是当我尝试打开该文件时出现此错误:
java.io.FileNotFoundException: file:/data/user/0/com.example.demo/cache/.tmp/cropped1651879842159823361.png: open failed: ENOENT (No such file or directory)
文件是这样创建的:
val croppedImageFile = File.createTempFile("cropped", ".png", viewModel.tempPath)
val destinationUri = Uri.fromFile(croppedImageFile)
viewModel.tempPath 就是以下内容:
viewModel.tempPath = "${this.cacheDir}/.tmp"
我可以看到该文件已创建并且有效,但是当我尝试访问它时,它声称它不存在。我只是通过 File(uri.toString())
打开文件。在视图模型中
我不确定哪里出了问题以及为什么找不到文件。如果这很重要,我使用的是 google 播放的模拟器,它是 Android 11.
您需要使用 new File(uri.getPath())
打开文件。
uri.toString()
returns 作为字符串的 URI,表示“file://path/to/file”,这不是有效路径。