I looked at some of the apis for file watching, allot of 1000's of lines of oo; its badly designed c apis blah blah blah; it belongs in the std. Id suggest 5 functions:
void folderWatch(string path,void function(string) F)
void folderWatchAsync(string path,void function(string) F)
void fileWatch(string path,void function() F)
void fileWatchAsync(string path,void function() F)
bool hasFileBeenModified(string path)()//returns true once per file modification, first call always returns true
Paths should be unix supporting, ..
~
:$HOME/%appdata% /
:root/C:
async version should make a thread automagicly
Passing along the full system api is irrelevant; idk why the implimations I saw did so
etc. etc.