LIstener for changes in a specified folder
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
DirectoryWatcher.xcodeproj
DirectoryWatcher
DirectoryWatcherTests
Example
.gitignore
DirectoryWatcher.podspec
LICENSE
README.md

README.md

This is a Swift translation of the Objective C version. Took some inspiration from this repo as well

DirectoryWatcher

DirectoryWatcher is a lightweight class that uses GCD to monitor a given path for changes. When any change to the directory occurs, DirectoryWatcher starts polling the monitored path, making sure that file transfers are finished before posting notifications.

Installing

CocoaPods (recommended)

# For latest release in cocoapods
pod 'DirectoryWatcher'

Carthage

Carthage is a decentralized dependency manager that builds your dependencies and provides you with binary frameworks.

You can install Carthage with Homebrew using the following command:

$ brew update
$ brew install carthage

To integrate DirectoryWatcher into your Xcode project using Carthage, specify it in your Cartfile:

github "GianniCarlo/DirectoryWatcher" ~> 2.0.0

Run carthage update to build the framework and drag the built DirectoryWatcher.framework into your Xcode project.

Usage

Monitor the Documents Folder

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
}

Call watcher.stopWatching() and watcher.startWatching() to pause / resume.