在我的应用中,我变得像文件管理器一样。它基于具有recyclerview和自定义适配器的自定义对话框。我发送文件列表,然后打开文件夹/文件。
我有两个问题:
我发送所有文件夹,也发送名称从.
到.archivetemp
的文件夹。我不知道如何仅发送不带点号的普通名称。在这里,我将数据发送到适配器:
fileList.clear()
fileList.addAll(root.list())
fileList.sort()
val files = root.listFiles()
Arrays.sort(files) { f1, f2 ->
if (f1.isDirectory && !f2.isDirectory) {
-1
} else if (!f1.isDirectory && f2.isDirectory) {
1
} else {
f1.compareTo(f2)
}
}
fileManagerAdapter = FileManagerA(this, fileList, files)
fileManagerAdapter.notifyDataSetChanged()
fileManager.adapter = fileManagerAdapter
在模拟器上,我收到没有基于点的文件夹的普通列表。
那么,如何解决这个问题以及我在哪里犯了错误?
答案 0 :(得分:1)
您可以列出没有.
或hidden
目录的目录,例如:
对于Java
//if the number of files is greater than 0, add the files and their names
for (int i = 0; i < files.length; i++) {
if(!files[i].isHidden())
fileList.add(files[i].getName()); // Add non hidden files
}
对于Kotlin
for (i in 0 until files.size) {
if (!files[i].isHidden)
fileList.add(files[i].name) // Add non hidden files
}