【问题标题】:KivyMD MDFileManager shows only image files, how to list all file types?KivyMD MDFileManager 只显示图像文件,如何列出所有文件类型?
【发布时间】:2023-03-25 12:33:01
【问题描述】:

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

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']扩展过滤技术时,即使图像文件列表消失了,只列出/显示文件夹名称。

因此,我写这个请求寻求专家的回应。

提前致谢。

【问题讨论】:

    标签: python kivy file-manager kivymd


    【解决方案1】:

    如果上面的情况不行,请尝试:

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

    【讨论】:

      【解决方案2】:
      1. 从 master 分支更新库 - 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,
          select_path=self.select_path,
          ext=[".py", "kv"],
      )
      

      【讨论】:

      • 您好,感谢您的快速支持。它在更新后工作,但ext 属性的配置是强制性的吗?如果是这样,有没有办法一次指定所有文件扩展名。按钮图标也消失了,可能 MDIcon 名称在新版本中已更改,将尝试找出解决方法。谢谢和问候!
      【解决方案3】:

      我和你有同样的问题。

      在 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

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2020-06-07
        • 1970-01-01
        • 1970-01-01
        • 2013-11-18
        • 1970-01-01
        • 2011-02-26
        • 1970-01-01
        相关资源
        最近更新 更多