Cross-platform file change monitor