如何通过文件API从内部存储中获取所有图像

发布于 2025-01-17 08:19:56 字数 1550 浏览 1 评论 0原文

如何通过文件API从内部存储中获取所有图像?

我做到了,但只从特定文件夹中?

fun findimage( scanningFiles: HashMap<String, ArrayList<String>>, file: File ): HashMap<String, ArrayList<String>> {  
    arraylist = ArrayList()
    val files = file.listFiles()
    if (files != null) {
        for (f in files) {
            if (f.isDirectory && !f.isHidden) {
                findimage(scanningFiles, f)
            } else {
                when (f.mimeType()?.substringBefore("/")) {
                    "image/*" -> {
                        /*return f.path*/
                        val md5 = getFileChecksum(f)

                        /*return md5*/
                        var fs: ArrayList<String>
                        if (!scanningFiles.containsKey(md5)) {
                            fs = ArrayList()
                            scanningFiles[md5] = fs
                        }
                        fs = scanningFiles[md5]!!
                        fs.add(f.path)
                        fs.sortWith { lhs, rhs -> lhs.length - rhs.length }
                        Log.d("hhhh", "huuhhuh" + fs.size)
                    }
                }
            }
        }
    }
    return scanningFiles
}

fun displayimg() {
    val scanningFiles: HashMap<String, ArrayList<String>> = HashMap()
    val path=findimage(scanningFiles,File(Constant.PARENT_DIR_PATH))

    Log.d("MainActivity", "displayimg: $path")
}

object Constant {
    const val PARENT_DIR_PATH = "/storage/emulated/0/"
}

how to fetch all images from internal storage through the file api?

I have done it, but only from a specific folder?

fun findimage( scanningFiles: HashMap<String, ArrayList<String>>, file: File ): HashMap<String, ArrayList<String>> {  
    arraylist = ArrayList()
    val files = file.listFiles()
    if (files != null) {
        for (f in files) {
            if (f.isDirectory && !f.isHidden) {
                findimage(scanningFiles, f)
            } else {
                when (f.mimeType()?.substringBefore("/")) {
                    "image/*" -> {
                        /*return f.path*/
                        val md5 = getFileChecksum(f)

                        /*return md5*/
                        var fs: ArrayList<String>
                        if (!scanningFiles.containsKey(md5)) {
                            fs = ArrayList()
                            scanningFiles[md5] = fs
                        }
                        fs = scanningFiles[md5]!!
                        fs.add(f.path)
                        fs.sortWith { lhs, rhs -> lhs.length - rhs.length }
                        Log.d("hhhh", "huuhhuh" + fs.size)
                    }
                }
            }
        }
    }
    return scanningFiles
}

fun displayimg() {
    val scanningFiles: HashMap<String, ArrayList<String>> = HashMap()
    val path=findimage(scanningFiles,File(Constant.PARENT_DIR_PATH))

    Log.d("MainActivity", "displayimg: $path")
}

object Constant {
    const val PARENT_DIR_PATH = "/storage/emulated/0/"
}

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文