It's perhaps not well named. Verify hash in only a single case returns false (which is intended). That's if its able to open the file and cannot locate the existing hash. If its unable to open the file, it can't say for sure that its not the same file anymore than it can say it is the same file (except that we do have a FD by this point if you look at the context for the call to VerifyFileHash).

If VerifyFileHash kicks out false, then we attempt to scan all the files to see where we actually should be (if we got moved). Technically we only verify the file hash when checking to see if there's a newer file available (which we only do if we've hit EOF on the file handle).

Do you have a suggestion for the function that is named better given the the goal is to only return false if we can be certain that the file now at this location does *not* match the hash?