gpt4 book ai didi

Kotlin:获取资源文件夹中所有文件的列表

转载 作者:行者123 更新时间:2023-12-02 12:00:32 27 4
gpt4 key购买 nike

有没有一种方法可以获取Kotlin中“resources”文件夹中所有文件的列表?

我可以读取特定文件为

Application::class.java.getResourceAsStream("/folder/filename.ext")

但是有时候我只想从文件夹“文件夹”中提取所有内容到外部目录。

谢谢你。

最佳答案

没有用于它的方法(即Application::class.java.listFilesInDirectory("/folder/")),但是您可以创建自己的系统来列出目录中的文件:

@Throws(IOException::class)
fun getResourceFiles(path: String): List<String> = getResourceAsStream(path).use{
return if(it == null) emptyList()
else BufferedReader(InputStreamReader(it)).readLines()
}

private fun getResourceAsStream(resource: String): InputStream? =
Thread.currentThread().contextClassLoader.getResourceAsStream(resource)
?: resource::class.java.getResourceAsStream(resource)

然后只需调用 getResourceFiles("/folder/"),您将在该文件夹中获得文件列表,并假设它位于类路径中。

之所以可行,是因为Kotlin具有扩展功能,可以将行读入字符串列表。声明是:
/**
* Reads this reader content as a list of lines.
*
* Do not use this function for huge files.
*/
public fun Reader.readLines(): List<String> {
val result = arrayListOf<String>()
forEachLine { result.add(it) }
return result
}

关于Kotlin:获取资源文件夹中所有文件的列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49419971/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com