如何解决如何使用来自不同存储位置的 imagepath 创建文件
通过使用 GligarPicker ImagePicker 得到了 ImagePaths 列表,每个图像来自不同的位置,如
N
使用 fileDescriptor 和 FileInputStream 和 FileOutputStream 创建文件并将其存储在应用程序级文件夹中。使用改造多部分将这些图像发送到服务器。 要将这些用户选择的图像存储在应用程序级文件夹中,我想使用上述图像路径创建文件。这里是如何创建文件
试过了:
/storage/emulated/0/WhatsApp/Media/WhatsApp Images/IMG-20210219-WA0000.jpeg
/storage/emulated/0/WhatsApp/Media/Hangto/IMG-2034543533219-TQQ1.jpeg
应用程序在 val outputStream = FileOutputStream(file) as file 处崩溃 崩溃报告:
val uri = Uri.parse("file://" + imagesList[i].toString())
val parcelFileDescriptor: ParcelFileDescriptor? =
requireContext().contentResolver.openFileDescriptor(uri,"r")
val fileDescriptor: FileDescriptor? = parcelFileDescriptor?.fileDescriptor
val file = File(
requireContext().externalCacheDir?.path,requireContext().contentResolver.getFileName(uri!!)
)
file.mkdir()
file.createNewFile()
val inputStream = FileInputStream(fileDescriptor)
val outputStream = FileOutputStream(file)
inputStream.copyTo(outputStream)
在这里创建文件后,我尝试获取文件绝对路径并返回
Caused by: java.io.FileNotFoundException: /storage/emulated/0/Android/data/com.visilogix.smarttrax/cache: open failed: EISDIR (Is a directory)
at libcore.io.IoBridge.open(IoBridge.java:496)
根据日志,我得出结论,我所指的 filePath 是错误的,如何修复它。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。