【问题标题】:Xamarin - Android: Is there a file picker which allow to filter out the formatXamarin - Android:是否有允许过滤格式的文件选择器
【发布时间】:2017-05-10 15:58:19
【问题描述】:

我在互联网上找到了很好的文件选择器,但没有看到自定义可以显示文件扩展名的方法。

我正在试用这两个包 Compass File Picker 和 FilePicker-Plugin-for-Xamarin-and-Windows,这是一个跨平台。我找不到这些来过滤掉文件,只显示某些类型的文件。

【问题讨论】:

  • 您是否考虑过简单地根据格式过滤 ViewModel 中的文件列表?

标签: android xamarin filtering file-extension


【解决方案1】:

FilePicker Xamarin 插件有一些分支,只有一个还支持以独立于平台的方式指定文件类型: https://github.com/jfversluis/FilePicker-Plugin-for-Xamarin-and-Windows (注意:我是该项目的贡献者之一)。

README.md 解释说,在 Android 上,您可以传递您想要选择的 MIME 类型。实际的文件选择器将与指定的 MIME 类型不匹配的文件灰显。您可以查看示例 Forms 项目,了解如何在其他平台上指定文件类型。该项目最近有更新,所以请尝试一下。

【讨论】:

    【解决方案2】:
    private void Button1_Click(object sender, System.EventArgs e)
        {
            Intent = new Intent();
            Intent.SetType("image/*");
            Intent.SetType("pdf/*");
            Intent.SetAction(Intent.ActionGetContent);
            StartActivityForResult(Intent.CreateChooser(Intent, "Select a File"),PickImageId);
            //CreateChooser(Intent, "Select Picture"), PickImageId);
        }
    

    这是用于从设备的图库中选择图像,以及设置扩展名的方式。请记住,如果设备的 API 级别低于 20,您可能还需要安装任何文件资源管理器。

    【讨论】:

      【解决方案3】:

      我在互联网上找到,但没有看到自定义可以显示文件扩展名的方法。

      我检查了FilePicker-Plugin-for-Xamarin-and-Windows 的源代码,这个插件的文件类型是由intent.SetType("*/*"); 硬编码的。所以不能用这个插件来过滤文件类型。

      但是您可以创建自己的文件选择器来过滤掉您想要的文件夹和文件扩展名:

      private void PickFile(string folder, string extension)
      {
          Intent intent = new Intent(Intent.ActionGetContent);
          intent.SetType(folder+"/"+extension);
      
          intent.AddCategory(Intent.CategoryOpenable);
          try
          {
              StartActivityForResult(Intent.CreateChooser(intent, "Select a file"),
                        0);
          }
          catch (System.Exception exAct)
          {
              System.Diagnostics.Debug.Write(exAct);
          }
      }
      

      通过覆盖OnActivityResult,您将获得文件选择器的结果。

      【讨论】:

      • 谢谢,我会试试的。
      • 抱歉还没来得及尝试。
      • 嗨,有没有办法控制文件选择器的大小?我希望它是全屏的。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-03-05
      • 1970-01-01
      • 2011-07-26
      • 1970-01-01
      • 2019-12-11
      • 2012-10-04
      • 1970-01-01
      相关资源
      最近更新 更多