compare md5 against string checksum
The "test" feature for copied files and the possibility to save the
generated checksum file are very good, but it would be even better if
TeraCopy would offer the possibility to check a file against a numeric
checksum (for downloaded files, for example).
Indeed, this is not
complicated at all to do manually (from creating a md5 file in a text
editor to using all sort of small utilities already available), but
exactly because is so simple, it should be implemented as a feature.
How I see it working:
Right click on the file: Windows Shell Context menu (or Submenu) "Check MD5" -> will open TeraCopy interface with a field that prompts for MD5 string value.
Benefits: - the most important benefit is to reduce "manual labor", after all this is the purpose of computers and software.
Where it would be useful:
- when downloading files from locations that offer the MD5 checksum for the file as a text, instead of a .md5 file, in order to ensure the download was complete and without issues.
As you can see in the attached image, the File List has not been expanded, so assuming there would be a hint present there, it cannot be seen. Still, I was able to check the file against the hash in my clipboard.
Displaying the hint after testing a file is pointless as the purpose of the hint is to give information before doing the action, not once the action failed.
The whole purpose of doing a graphical interface for a program is to make the use of it more seamless, faster, not more intricate. For direct commands, there is always the terminal... whoever doesn't need visual helpers can use command line.
Anyway, I tried to explain this from the point of view of an inexperienced user, as you may want to aim your software towards anyone wishes to use it not only power users. So, consider this:
- user does RightClick -> TeraCopy, on a file, or drag-and-drop the file in TeraCopy window
- Test button appears
- User clicks Test and what TeraCopy will do it is to create a md5 file (not what the user thought it will happen)
Now, let's see how this can be improved:
- user loads file in TeraCopy (right-click -> TeraCopy, or drag-and-drop)
- Instead of Test, a "Generate Hash" button, which is more suggestive: it will generate a hash based on current state of the file.
- A Second button named "Test" (or whatever you think is best) would compare the file against the hash. - Now, I understand here would be a redundancy, as the hash has to be generated before comparing, reason why you probably made one button with dual functionality. But think from user point of view: users are not as efficient as programmers and machines.
So, this "test" button would need to do a smart thing when pressed:
- check if a hash string has been copied in the clipboard
- if there is something copied in clipboard, check if indeed is a md5 hash and not a cookies recipe (check the string structure, if is indeed a 128bit hash hex string). This is important to not run a pointless check. Better warn the user before wasting time. Anyway, I believe you are already doing the string check.
- if there isn't a valid hash in the clipboard, it should give a warning. But only if there isn't! Having the screen occupied with pointless information is equally bad like not providing it when needed.
Most of users understand what "clipboard" means and how to copy something in the clipboard, but there are users that may not know... don't be surprised, I met educated people that lacked some basic computer-related knowledge. So, for this reason, I would suggest TeraCopy to provide an input field for a hash string if it hasn't been copied in the clipboard. Yes, it may seem redundant again (because for the user to paste it in the input field, it has to copy it first, which already solves your problem), but you are different, you think in more abstract patterns than many users. So, having a field that asks for the string may be more descriptive for them.
Of course, a simpler way would be just a Warning Dialog saying "copy a hash string in the Clipboard" and that's it... who can't get it around, is their problem. And I would be happy with that too. What I would like you to understand, is the importance of the following:
1. dedicated button for generating hash
2. dedicated button for comparing against a (clipboard) hash
3. warning if user tries to compare without having a hash copied