DirectoryWatcher 2.7.3

DirectoryWatcher 2.7.3

Gianni Carlo 维护。



  • Gianni Carlo

这是 Objective-C 版本的 Swift 转译。同时也受到了 这个仓库 一些启发

DirectoryWatcher

DirectoryWatcher 是一个轻量级类,使用 GCD 监控指定路径的变化。当目录发生任何变化时,DirectoryWatcher 开始轮询监控路径,确保文件传输完成后再发布通知。

安装

CocoaPods (推荐)

# For latest release in cocoapods
pod 'DirectoryWatcher'

Carthage

Carthage 是一个去中心化的依赖管理器,它会构建您的依赖并为您提供二进制框架。

您可以使用以下命令使用 Homebrew 安装 Carthage

$ brew update
$ brew install carthage

要使用 Carthage 将 DirectoryWatcher 集成到您的 Xcode 项目中,请指定 Cartfile 中的它

github "GianniCarlo/DirectoryWatcher" ~> 2.0.0

运行 carthage update 以构建框架,并将构建的 DirectoryWatcher.framework 拖到您的 Xcode 项目中。

Swift 包管理器

Swift 包管理器是一个用于自动化 Swift 代码分配的工具,并集成到 swift 编译器中。

一旦设置好 Swift 包,将 DirectoryWatcher 作为依赖项添加就如同将其添加到 Package.swiftdependencies 值一样简单。

dependencies: [
	.package(url: "https://github.com/GianniCarlo/DirectoryWatcher.git", .upToNextMajor(from: "2.7.0"))
]

用法(DirectoryWatcher)

监控文档文件夹

let documentsUrl = FileManager.default.urls(for: .documentDirectory, in: .userDomainMask).first!
let watcher = DirectoryWatcher.watch(documentsUrl)

watcher.onNewFiles = { newFiles in
  // Files have been added
}

watcher.onDeletedFiles = { deletedFiles in
  // Files have been deleted
}

调用 watcher.stopWatching()watcher.startWatching() 以暂停/恢复。

用法(DirectoryDeepWatcher)

监控文档文件夹及其子文件夹

let documentsUrl = FileManager.default.urls(for: .documentDirectory, in: .userDomainMask).first!
let watcher = DirectoryDeepWatcher.watch(documentsUrl)

watcher.onFolderNotification = { folder in
  // New changes have happened inside one folder
  // This folder could be a subfolder inside the root folder being watched
}

调用 watcher.stopWatching()watcher.startWatching() 以暂停/恢复,或者调用 watcher.restartWatching() 以在层次结构发生变化的情况下丢弃旧监听器并放置新的监听器