How to detect new file is ready (closed by creator)?

My program is watching for new files in a specific directory. When the new file is detected, the program opens it and reads the data. The problem I have is determining that the creator of the file has closed the file so I can be sure all the data has been written to the file. I am currently using CFile and opening the file with CFile::modeRead | CFile::shareDenyWrite. However, I'm getting access denied (error 5) even after waiting for some time and yet I can delete (remove) the file.


  • Hi there!

    Take a look at the API calls for FindFirstChangeNotification and FindNextChangeNotification. These calls will watch a specific directory or file for a change, and they handle the problem you've described.

    As I recall, they return only when the file is done, so you don't have to worry about everything.

    I've used them in Visual Basic to watch a folder for the creation of a text file, then process the file (transfer the contents to a SQL database) and subsequently delete the file.

    the only reliable way I found to do it was using these calls.

    Good luck!


Sign In or Register to comment.

Howdy, Stranger!

It looks like you're new here. If you want to get involved, click one of these buttons!


In this Discussion