IMHO using file size as the only indicator for "file changed status" is rather vague. The file size may be the same yet the content is changed (eg a letter)
I suggest using the last modified date/time.
Also
you should consider what happens when your program is doing whatever to the file (in memory perhaps) that no one tampers it in between. In another
word, can the file be locked (similar to database row or table locking) during processing?