Howdy, Stranger!

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

Categories

Welcome to the new platform of Programmer's Heaven! We apologize for the inconvenience caused, if you visited us from a broken link of the previous version. The main reason to move to a new platform is to provide more effective and collaborative experience to you all. Please feel free to experience the new platform and use its exciting features. Contact us for any issue that you need to get clarified. We are more than happy to help you.

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

  • melissa_may1melissa_may1 Posts: 937Member
    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.