Option: Flush write buffer before verify
When I copy files and check "verify" then Teracopy starts verification immediately after the copy operation has finished. This presents a problem in cases when I copy files to a DVD disc which is in UDF format (formatted as "live file system" in Windows). The system reports those files as written while in actual fact they are still in buffer and waiting to be burnt physically - when the verification has started in that moment then there are two concurrent operations going on: verification and writing. This causes the process to slow down considerably because the DVD drive moves the laser head from one place to another alternating between writes and reads - a very slow process on optical media. Only after a while (when the writes are actually committed to disc) the verification process starts off with its normal read speed.
Apart from slowness and unpleasant sounds coming from the drive I fear that this might also affect negatively write quality since the write process is being constantly interrupted by reads - I'm not sure about it but I think it would certainly be better if writes were done in one continuous fashion and then verification in the same way.
So my suggestion is to add an option to Teracopy to flush the write buffer before starting verification. I even think it would be a good idea to implement it for all types of media including internal disks - it makes sense to verify only after all data have been saved to disk physically - but if it's optional then I'd be happy also.
I've found a program that can flush write buffers called flush - it works for optical media when used with the -force option - when I run it immediately after the copy has finished and manually start verification just after the buffer is flushed then this seems to get the job done (the Sync program by Sysinternals apparently can't flush optical disc buffers). It would be great if Teracopy could so the same thing automatically and in unattended mode.
This workaround won't work because there are a few problems with it:
1. Teracopy runs on-finish scripts after verification and flush.exe would have to be run before verification.
2. flush.exe needs to be run with admin rights - I would need to manually run it with admin rights and it would be very inconvenient (for example, no simple drag&drop).
3. flush.exe needs the drive letter of the target file (perhaps TeraCopy sends some variable with it but due to the other problems I didn't check it).
4. The on-finish menu gets cleared every time so there would be a lot of manual tweaking required for every copy operation: checking 'verify', choosing the on-finish command and making sure TeraCopy is run with admin rights.