为什么我的应用程序在Filemanager对话框中打开错误的文件夹?

时间:2019-05-28 06:14:57

标签: android recycler-adapter

在我的应用中,我变得像文件管理器一样。它基于具有recyclerview和自定义适配器的自定义对话框。我发送文件列表,然后打开文件夹/文件。

我有两个问题:

  1. 我发送所有文件夹,也发送名称从..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
    

在模拟器上,我收到没有基于点的文件夹的普通列表。

  1. 第二个问题-单击手机上的项目时,我打开了错误的文件夹。例如,文件夹放置在10位置,但是我打开了放置在12位置的文件夹。我认为此问题是由发送错误的文件夹列表引起的,但我可能是错误的。

那么,如何解决这个问题以及我在哪里犯了错误?

1 个答案:

答案 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
}