FileExplorer是一个控件,可提供在iOS设备上轻松浏览和与本地文件系统交互的方法。它作为文件浏览器使用,同时还具有删除指定文件和/或目录以及选择文件和/或目录的功能。
主要特性 | |
---|---|
可以选择文件或/和目录,如果需要的话 | |
可以选择删除文件或/和目录,如果需要的话 | |
内置搜索功能 | |
已记录 | |
开箱即用的图像、音频、视频和PDF文件支持 | |
可扩展的API;添加任何文件类型支持的可能性 | |
用Swift编写 |
图像 | 音频文件 | 视频 | 目录 | PDF文件 | 预览 |
---|---|---|---|---|---|
![]() | ![]() | ![]() | ![]() | ![]() | ![]() |
查看示例用法,以了解如何使用库。请确保您已经阅读了Cocoa Docs上的FileExplorer文档。
当您希望使用RATreeView时,请在您的项目文件中添加以下导入:
import FileExplorer
呈现文件资源管理器最简单的方法
let fileExplorer = FileExplorerViewController()
self.present(fileExplorer, animated: true, completion: nil)
FileExplorer允许多种自定义。下面将讨论其中一些。
FileExplorerViewController
具有过滤器(fileFilters
和ignoredFileFilters
属性),可以用来选择显示给用户哪些文件或目录。
指定哪些文件应该对用户可见
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