FileExplorer 1.0.4

FileExplorer 1.0.4

测试已测试
语言语言 SwiftSwift
许可证 MIT
发布最新发布2016年12月
SwiftSwift版本3.0
SPM支持SPM

Rafał Augustyniak维护。




  • Rafal Augustyniak

FileExplorer (iOS 9.0+)

👷项目由Rafał Augustyniak创建和维护。您可以在twitter(@RaAugustyniak)上找到我。

简介

iOS

FileExplorer是一个控件,可提供在iOS设备上轻松浏览和与本地文件系统交互的方法。它作为文件浏览器使用,同时还具有删除指定文件和/或目录以及选择文件和/或目录的功能。

主要特性
👉 可以选择文件或/和目录,如果需要的话
🗑 可以选择删除文件或/和目录,如果需要的话
🔍 内置搜索功能
📚 已记录
🏠 开箱即用的图像、音频、视频和PDF文件支持
🚀 可扩展的API;添加任何文件类型支持的可能性
🐦 用Swift编写
图像 音频文件 视频 目录 PDF文件 预览
iOS iOS iOS iOS iOS iOS

目录

安装

源文件

  1. 使用链接下载库的最新版本。
  2. 通过将下载的(未压缩的)zip文件的 contents 拖动到Project的navigator文件结构中将压缩文件的内容复制到您的项目中。

基本用法

查看示例用法,以了解如何使用库。请确保您已经阅读了Cocoa Docs上的FileExplorer文档

基础

  1. 当您希望使用RATreeView时,请在您的项目文件中添加以下导入:

    import FileExplorer
  2. 呈现文件资源管理器最简单的方法

    let fileExplorer = FileExplorerViewController()
    self.present(fileExplorer, animated: true, completion: nil)

自定义

FileExplorer允许多种自定义。下面将讨论其中一些。

决定哪些文件和/或目录应该可见

FileExplorerViewController具有过滤器(fileFiltersignoredFileFilters属性),可以用来选择显示给用户哪些文件或目录。

指定哪些文件应该对用户可见

let fileExplorer = FileExplorerViewController()

//Only files with `txt` and `jpg` extensions will be visible
fileExplorer.fileFilters = [Filter.extension("txt"), Filter.extension("jpg")]

self.present(fileExplorer, animated: true, completion: nil)

指定哪些文件不应对用户可见

let fileExplorer = FileExplorerViewController()

//Everything but directories will be visible
fileExplorer.ignoredFileFilters = [Filter.type(.directory)]

self.present(fileExplorer, animated: true, completion: nil)

结合两种类型的过滤器

let fileExplorer = FileExplorerViewController()

//Only files with `.txt` extension that were modified prior to `referenceDate` will be visible
fileExplorer.fileFilters = [Filter.extension("txt")]
fileExplorer.ignoredFileFilters = [Filter.Filter.modificationDatePastOrEqualTo(referenceDate)]

self.present(fileExplorer, animated: true, completion: nil)

使用文件资源管理器作为选择文件和/或目录的方式

配置FileExplorer以便用户可以选择文件和/或目录

let fileExplorer = FileExplorerViewController()
fileExplorer.canChooseFiles = true //specify whether user is allowed to choose files
fileExplorer.canChooseDirectories = false //specify whether user is allowed to choose directories
fileExplorer.allowsMultipleSelection = true //specify whether user is allowed to choose multiple files and/or directories
fileExplorer.delegate = self

self.present(fileExplorer, animated: true, completion: nil)

通过代理回调通知所选文件

public func fileExplorerViewController(_ controller: FileExplorerViewController, didChooseURLs urls: [URL]) {
    //Your code here
}

决定用户是否可以删除文件和/或目录

配置FileExplorer以便用户可以删除文件和/或目录

let fileExplorer = FileExplorerViewController()
fileExplorer.canRemoveFiles = true //specify whether user is allowed to remove files
fileExplorer.canRemoveDirectories = false //specify whether user is allowed to remove directories

self.present(fileExplorer, animated: true, completion: nil)

增加对其他文件类型的支持

FileExplorer的设计考虑到了可扩展性。它允许用户注册自己的文件类型并为他们提供缩略图和预览视图控制器,整个过程简单直接。

首先实现一个遵循FileSpecificationProvider协议的类。

class CustomFileSpecificationProvider: FileSpecificationProvider {
   public class var extensions: [String] {
      return ["foo"]
   }

   public class func thumbnail(forItemAt url: URL, with size: CGSize) -> UIImage? {
      return nil; // FileExplorer uses default thumbnail if nil is returned
   }

   public class func viewControllerForItem(at url: URL, data: Data?, attributes: FileAttributes) -> UIViewController {
      let viewController = CustomViewController()
      //configure your custom view controller here
      return viewController
   }
}

之后,创建的类必须在FileExplorerViewController实例中注册

let fileExplorer = FileExplorerViewController()
fileExplorer.fileSpecificationProviders = [CustomFileSpecificationProvider.self]

self.present(fileExplorer, animated: true, completion: nil)

这就完成了!从现在起,FileExplorerViewController实例使用CustomFileSpecificationProvider为带有foo扩展名的文件提供缩略图和视图控制器。

文档

文档可在CocoaPods上查看。

作者

FileExplorer是由Rafał Augustyniak创建的。您可以在twitter上找到我(@RaAugustyniak)。

许可

MIT许可,版权所有 © 2016 Rafał Augustyniak,@RaAugustyniak