无法从下载目录中获取任何文件

时间:2019-11-12 11:09:55

标签: android storage android-external-storage android-internal-storage

我正在尝试构建一个简单的图库,以显示某个目录downloads/mCustomDir中的所有图像。

但是,即使我没有尝试访问此自定义目录,也没有尝试访问常规下载目录,即使我知道那里有文件,我也没有找回文件。 在过去的几个月中,访问存储的方式似乎发生了很多变化,并且许多东西都已弃用,因此我很难理解如何正确访问这些文件。

这是我的功能:

private fun loadSavedImages(dir: File?) {
    if (dir != null) {
        if (dir.exists()) {
            val files = dir.listFiles()
            if (files != null) {
                val allPhotos = mutableListOf<File>()
                Log.d("filesListSize", files.size.toString())

                for (file in files) {
                    val absolutePath = file.absolutePath

                    val extension = absolutePath.substring(absolutePath.lastIndexOf("."))
                    if (acceptedExtensions.contains(extension)) {
                        allPhotos.add(file)
                    }
                }
                allPhotosViewModel.photosList.postValue(allPhotos)
            }
        }
    }
}

我可以使用onResume

override fun onResume() {
    super.onResume()

    if (hasNoPermissions(this)) {
        requestPermission(this, permissions)
    } else {
        if (isExternalStorageReadable()) {
            runOnUiThread {
                loadSavedImages(getExternalFilesDir(Environment.DIRECTORY_DOWNLOADS))
            }
        }
    }
}

总线日志将继续打印文件数组的大小为0。

当我使用Environment.getExternalStoragePublicDirectory时,它可以正常工作,但已过时,我希望它以当前的最佳标准构建。

0 个答案:

没有答案