You are correct, but I can't control what my users will do.... so I'm trying to make something robust.
In the actual case where I am getting the failure, all the images are in a single folder. This folder is on the E: drive. There is nothing else on the E: drive, certainly not my code. (Remember, the VI works fine when I run it directly, which means that I have a very empty E: drive immediately after.)
I can delete the files after they are created using Explorer, and get no error messages about files being in use. My main routine call FM_DeleteAll as its absolute first action, in order to avoid other problems. I'm using a sequence structure and error wires to ensure that nothing else happens in my program until this routine completes. (The rest of the program uses a frame grabber to stream a large number of large images to disk. Nothing elaborate.)