android - 从android kotlin中的文件夹中获取图像列表
问题描述
我正在尝试使用此功能从文件夹中获取图像列表
var gpath:String = Environment.getExternalStorageDirectory().absolutePath
var spath = "testfolder"
var fullpath = File(gpath + File.separator + spath)
var list = imageReader(fullpath)
fun imageReader(root : File):ArrayList<File>{
val a : ArrayList<File> ? = null
val files = root.listFiles()
for (i in 0..files.size){
if (files[i].name.endsWith(".jpg")){
a?.add(files[i])
}
}
return a!!
}
但我有这些例外:
java.lang.ArrayIndexOutOfBoundsException:length=3;index=3
kotin.kotlinNullPointerException
我已经阅读过这个问题,但我不知道如何解决它,
请问有什么帮助吗?
解决方案
对于Null Pointer,您可能需要更改并传递fullpath而不是path inside var list = imageReader(path)
。
错误的
var fullpath = File(gpath + File.separator + spath)
var list = imageReader(path)
对
var gpath:String = Environment.getExternalStorageDirectory().absolutePath
var spath = "testfolder"
var fullpath = File(gpath + File.separator + spath)
var list = imageReader(fullpath)
编辑 1
我对功能进行了一些更改,并将其应用到override fun onCreate中,如下所示。
var gpath: String = Environment.getExternalStorageDirectory().absolutePath
var spath = "Download"
var fullpath = File(gpath + File.separator + spath)
Log.w("fullpath", "" + fullpath)
imageReaderNew(fullpath)
功能
fun imageReaderNew(root: File) {
val fileList: ArrayList<File> = ArrayList()
val listAllFiles = root.listFiles()
if (listAllFiles != null && listAllFiles.size > 0) {
for (currentFile in listAllFiles) {
if (currentFile.name.endsWith(".jpeg")) {
// File absolute path
Log.e("downloadFilePath", currentFile.getAbsolutePath())
// File Name
Log.e("downloadFileName", currentFile.getName())
fileList.add(currentFile.absoluteFile)
}
}
Log.w("fileList", "" + fileList.size)
}
}
Logcat 输出
W/fullpath: /storage/emulated/0/Download
E/downloadFilePath: /storage/emulated/0/Download/download.jpeg
E/downloadFileName: download.jpeg
E/downloadFilePath: /storage/emulated/0/Download/images.jpeg
E/downloadFileName: images.jpeg
E/downloadFilePath: /storage/emulated/0/Download/images (1).jpeg
E/downloadFileName: images (1).jpeg
推荐阅读
- r - 从网格布局引擎更改 R ggplots 周围的空白
- android - 工作日后在 Flutter Calendar Widget 中添加分隔符
- python - Python OKTA 和 Salesforce
- postgresql - Quarkus sql 客户端 PreparedQuery.executeBatch 受影响的行数始终等于 1
- arrays - 在 PowerShell 中,为什么我的 if 语句返回整个数组而不是单个对象?
- excel - 将数据从 excel 文件复制并粘贴到另一个文件并更改格式
- javascript - 如何使用 jQuery 从动态添加的行中计算表列的总和?
- python - 请让我理解为什么在下面的代码中使用 numpy.isfinite 函数的原因?
- css - MiniCssExtractPlugin - 首次加载时的内联样式?
- azure-devops - Azure DevOps yaml 管道表达式未评估