I make program with spyware features for education, and I need to know in the program when file system is changing file, and what file is being changed.
On Windows, look at SHChangeNotifyRegister(). Not only does it tell you what kind of change occured, but it also tells you which exact file(s) were changed.