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.

Comments

  • 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!


    [purple]Melissa[/purple]

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!

Categories

In this Discussion