You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
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.
# For latest release in cocoapodspod'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.
Swift Package Manager
The Swift Package Manager is a tool for automating the distribution of Swift code and is integrated into the swift compiler.
Once you have your Swift package set up, adding DirectoryWatcher as a dependency is as easy as adding it to the dependencies value of your Package.swift.
letdocumentsUrl=FileManager.default.urls(for:.documentDirectory, in:.userDomainMask).first!
letwatcher=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.
Usage (DirectoryDeepWatcher)
Monitor the Documents Folder and its subfolders
letdocumentsUrl=FileManager.default.urls(for:.documentDirectory, in:.userDomainMask).first!
letwatcher=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
}
Call watcher.stopWatching() and watcher.startWatching() to pause / resume, or watcher.restartWatching() to discard previous listeners and place new ones in case the hierarchy has changed