KivyMD MDFileManager仅显示图像文件,如何列出所有文件类型?

问题描述

我正在为Android开发KivyMD文本文件浏览器。以下是代码段:

def __init__(self,**kwargs):
self.file_manager = MDFileManager(
            exit_manager=self.exit_manager,select_path=self.select_path,prevIoUs=False,)
request_permissions([Permission.WRITE_EXTERNAL_STORAGE,Permission.READ_EXTERNAL_STORAGE,Permission.INTERNET])
self.ROOT_PATH = primary_external_storage_path()

以上初始化工作正常,以下代码语句也启动了文件管理器/浏览器。

self.file_manager.show(self.ROOT_PATH)

但是生成内容只是文件名称或图像文件(.jpg,.jpeg,.png)。没有显示其他文件类型。

我在调用self.file_manager.show(self.ROOT_PATH)之前尝试了以下操作,但是响应没有变化。

self.file_manager.use_access = True
self.file_manager.prevIoUs=False
self.file_manager.preview=False

当我尝试使用self.file_manager.ext = ['txt']扩展名过滤技术时,即使列出的图像文件也消失了,仅列出/显示文件名称

因此,我写此请求是为了寻求专家的答复。

谢谢。

解决方法

  1. 从主分支-https://github.com/kivymd/KivyMD,而不是pip中更新库。

self.file_manager = MDFileManager(
    exit_manager=self.exit_manager,select_path=self.select_path,preview=True,# preview=True - deprecated
 )
  1. 如果设置“预览”参数,则仅图像将显示在文件管理器中。如果要文件管理器显示所有文件类型,请不要使用“预览”参数

self.file_manager = MDFileManager(
    exit_manager=self.exit_manager,ext=[".py","kv"],)

enter image description here

,

如果上述情况不起作用,请尝试:

self.file_manager = MDFileManager(exit_manager=self.exit_manager,)
   self.file_manager.ext = [".py",".kv"]
,

我和你有同样的问题。

在 android.developers 上发现实际上对于“所有文件”需要 MANAGE_EXTERNAL_STORAGE 权限。

只需将 buildozer.spec 文件 MANAGE_EXTERNAL_STORAGE 也放入:

(列表)权限

android.permissions = INTERNET,WRITE_EXTERNAL_STORAGE,READ_EXTERNAL_STORAGE,MANAGE_EXTERNAL_STORAGE 无需将它放在 py 代码中,因为您需要其他权限。 他们可以在代码中避免每次启动应用程序时都要求获得许可。

但是,安装应用程序后,您必须继续使用应用程序权限来管理所有文件allow permission

为我工作,希望它有所帮助。