iNotifyTree

iNotifyTree
(
string path
,
uint mask
)

Examples

import std.process;
system("rm -rf tmp");
system("mkdir -p tmp/dir1/dir11");
system("mkdir -p tmp/dir1/dir12");
auto ntree = iNotifyTree("tmp/dir1", IN_CREATE | IN_DELETE);
system("touch tmp/dir1/dir11/a.tmp");
system("touch tmp/dir1/dir12/b.tmp");
system("rm -rf tmp/dir1/dir12");
auto evs = ntree.read();
assert(evs.length == 4);
// a & b files created
assert(evs[0].mask == IN_CREATE && evs[0].path == "tmp/dir1/dir11/a.tmp");
assert(evs[1].mask == IN_CREATE && evs[1].path == "tmp/dir1/dir12/b.tmp");
// b deleted as part of sub-tree
assert(evs[2].mask == IN_DELETE && evs[2].path == "tmp/dir1/dir12/b.tmp");
assert(evs[3].mask == (IN_DELETE | IN_ISDIR) && evs[3].path == "tmp/dir1/dir12");

Meta