FileCheckMD5
FileCheckMD5
http://www.brandonstaggs.com/filecheckmd5.html
Allows you to create hashes of hundreds or thousands of files in multiple directories and then automatically check them for defects later. I use it to check AND catalog my music collection as well as my most important system CDs.
- - -
I tried running this with API Guard and it seemed pretty self-contained but I'd obviously like someone else to check it. Anybody check it out and let me know? Or suggest an alternative program?
I tried this with the only other freeware program I've found like it MD5summer, which is NOT portable, and I found later to be very buggy.
Allows you to create hashes of hundreds or thousands of files in multiple directories and then automatically check them for defects later. I use it to check AND catalog my music collection as well as my most important system CDs.
- - -
I tried running this with API Guard and it seemed pretty self-contained but I'd obviously like someone else to check it. Anybody check it out and let me know? Or suggest an alternative program?
I tried this with the only other freeware program I've found like it MD5summer, which is NOT portable, and I found later to be very buggy.
Re: FileCheckMD5
Tested ExactFile: Not Portable
Wrote settings to HKCU\Software\ExactFile. But it is a useful program that can be run Portable, but settings will be left behind in the Registry.
Download: http://www.exactfile.com/
Tested FileCheckMD5: Portable
Details on why the program was created [ExactFile.com] Worth submitting because it creates a MD5 Checksum File which can be opened with TeraCopy and then checks the integrity of the files on a CD-ROM (for example.)
Download: http://www.exactfile.com/downloads/
Wrote settings to HKCU\Software\ExactFile. But it is a useful program that can be run Portable, but settings will be left behind in the Registry.
Download: http://www.exactfile.com/
Tested FileCheckMD5: Portable
Details on why the program was created [ExactFile.com] Worth submitting because it creates a MD5 Checksum File which can be opened with TeraCopy and then checks the integrity of the files on a CD-ROM (for example.)
Download: http://www.exactfile.com/downloads/
Re: FileCheckMD5
From the site: http://www.exactfile.com/downloads/
> FileCheckMD5 - THIS IS OBSOLETE. ExactFile does everything you’d want FileCheckMD5 to do and more, plus ExactFile fixes a bunch of bugs that will never be fixed in FileCheckMD5.
Also, the software is listed as "alpha" so I'm guessing we shouldn't add to the database. Bummer.
Also on the ExactFile page (http://www.exactfile.com/using-exactfile/), someone already brought up the fact that there's no portable version so I'll probably skip contacting the author.
> FileCheckMD5 - THIS IS OBSOLETE. ExactFile does everything you’d want FileCheckMD5 to do and more, plus ExactFile fixes a bunch of bugs that will never be fixed in FileCheckMD5.
Also, the software is listed as "alpha" so I'm guessing we shouldn't add to the database. Bummer.
Also on the ExactFile page (http://www.exactfile.com/using-exactfile/), someone already brought up the fact that there's no portable version so I'll probably skip contacting the author.
Re: FileCheckMD5
I just realised DVDsig does exactly the same job as FileCheckMD5, but with an application the size of only 10KB.
Re: FileCheckMD5
DVDsig is a nifty little program. The only drawback is that the .md5 file it generates is not organized so as to be easy to read. I have wondered why there are so few hash apps capable of scanning recursively.
Re: FileCheckMD5
This has been my beef for a while now.dmg wrote:DVDsig is a nifty little program. The only drawback is that the .md5 file it generates is not organized so as to be easy to read. I have wondered why there are so few hash apps capable of scanning recursively.
Re: FileCheckMD5
Also another problem with DVDsig is the MD5 file produced by FileCheckMD5 works with TeraCopy, but the DVDsig MD5 file doesn't work at all. I think it's because the delimiter used with FileCheckMD5 is "|" and "," in DVDsig.
If you open the .md5 file with Notepad you can see the contents of the file.
If you open the .md5 file with Notepad you can see the contents of the file.
Re: FileCheckMD5
The files also place the file name and hash in opposite order. I am looking at a way to convert the DVDsig file. I will let you know.
Re: FileCheckMD5
yes! The DVDsig file can be converted with a simple keyboard macro. I created one in TinyTask because it was faster, but it can be done in AutoHotKey. The one I made is functional but clumsy. I am sure an AutoHotKey version would be better. Now, the real question is does anyone have a use for such a thing....
Re: FileCheckMD5
I was going to create a converter for the .md5 file in AutoIt, if those are interested I can post the code here.
Re: FileCheckMD5
I do not use TeraCopy so I don't really have a use for the script, but I would be interested in seeing the code. I dabble a little in AHK but have never looked at Autoit.
Re: FileCheckMD5
Here is the AutoIt code for converting a dvdsig.md5 to a TeraCopy and filecheckmd5.md5 compatible file. This a proof of concept and hopefully helpful if you want to learn how to use AutoIt. Any enhancements post below.
Update: Rearrange some of the code to be a little more efficient!
Code: Select all
#include <File.au3>
$File = FileOpenDialog("Simple DVDSig Converter", @HomeDrive, "MD5 (*.md5)")
If Not @error Then
If _Convert($File) = 1 Then
MsgBox(64, "Simple DVDSig Converter", "Complete.")
Exit
Else
MsgBox(16, "Simple DVDSig Converter", "Error, unexpected problem occurred." & @CRLF & @CRLF & "Try again!")
Exit
EndIf
EndIf
Func _Convert($cFile)
Local $TempArray[1], $Temp_FileList[1][2]
_FileReadToArray($cFile, $TempArray)
If Not @error Then
ReDim $Temp_FileList[$TempArray[0] + 1][2]
For $A = 1 To $TempArray[0]
; ConsoleWrite($TempArray[$A] & @CRLF) ; TESTING: To see what filename is being split.
$Temp_FileList_Two = StringSplit($TempArray[$A], ",")
If @error Then
MsgBox(16, "Simple DVDSig Converter", "Error, incorrect MD5 file has been chosen." & @CRLF & @CRLF & "Ideally the filename should be called dvdsig.md5")
Exit
EndIf
For $B = 1 To $Temp_FileList_Two[0]
$Temp_FileList[$A][$B - 1] = $Temp_FileList_Two[$B] ; 2D Array splitting Filename & MD5 checksum into 2 columns
Next
$Temp_FileList[0][0] += 1
Next
; _ArrayDisplay($Temp_FileList, "Split into two columns") ; Displays the two columns of both filename & MD5 checksum. Requires #include <Array.au3>
For $A = 1 To $Temp_FileList[0][0]
$TempArray[$A] = $Temp_FileList[$A][1] & "|" & $Temp_FileList[$A][0] ; 1D Array combining MD5 checksum & Filename
$TempArray[0] += 1
Next
_FileWriteFromArray(StringRegExpReplace($cFile, "^.*\\|\..*$", "") & "_NEW.md5", $TempArray, 1) ; Writing Array to a new MD5 file using select file + _NEW prefix
Return 1
ElseIf @error Then
Return 0
EndIf
EndFunc ;==>_Convert
Last edited by guinness on Thu Jul 29, 2010 10:10 am, edited 2 times in total.
Re: FileCheckMD5
Wow! Thanks for posting the script. I think am going to have to do a lot of reading up on Autoit before I will be able to understand any of this.
Re: FileCheckMD5
You're welcome! The code is very easy once you understand the basics of AutoIt. In my opinion AutoHotKey seems a little clumsy and not as self explanatory as AutoIt! But each to their own I suppose.dmg wrote:Wow! Thanks for posting the script. I think am going to have to do a lot of reading up on Autoit before I will be able to understand any of this.
Re: FileCheckMD5
I updated the script which converts a DVDSig file to a compatible TeraCopy/FileCheckMD5 file. For those learning AutoIt, this is a great way to learn how to code, as it uses 1D/2D Arrays & error checking (It's a simple script!)
Note: I have added into this script a way to reverse the process of conversion, i.e. if you wish to convert back to a DVDSig compatible file from a TeraCopy/FileCheckMD5 file, simply change the _Convert_MD5Sig(FileOpenDialog("Open DVDSig MD5 File", @HomeDrive, "MD5 (*.md5)"), ",", "|") to _Convert_MD5Sig(FileOpenDialog("Open TeraCopy/FileCheckMD5 MD5 File", @HomeDrive, "MD5 (*.md5)"), "|", ",") (it's only swapping ',' and '|' the other way around!)
Hopefully the AutoHotKey users on TPFC will have fun learning this!
Note: I have added into this script a way to reverse the process of conversion, i.e. if you wish to convert back to a DVDSig compatible file from a TeraCopy/FileCheckMD5 file, simply change the _Convert_MD5Sig(FileOpenDialog("Open DVDSig MD5 File", @HomeDrive, "MD5 (*.md5)"), ",", "|") to _Convert_MD5Sig(FileOpenDialog("Open TeraCopy/FileCheckMD5 MD5 File", @HomeDrive, "MD5 (*.md5)"), "|", ",") (it's only swapping ',' and '|' the other way around!)
Hopefully the AutoHotKey users on TPFC will have fun learning this!
Code: Select all
; #FUNCTION# =========================================================================================================
; Name...........: MD5Sig Converter or TeraCopy/FileCheckMD5 Converter
; Description ...: Converts a dvdsig.md5 to a TeraCopy and filecheckmd5.md5 compatible file or vice versa.
; Syntax.........: _Convert_MD5Sig($MD5Sig_File, [$Delimiter_Input = ",", [$Delimiter_Output = "|"]])
; Parameters ....: $MD5Sig_File - .MD5 that is to be converted.
; $Delimiter_Input - [Optional] The delimiter of the input file which splits the MD5 string and filename. (Default = ",")
; $Delimiter_Output - [Optional] The delimiter of the ouput file which splits the MD5 string and filename. (Default = "|")
; Requirement(s).: v3.0.102 or higher
; Return values .: Success - Converts the .MD5 to a compatible format.
; Failure - Displays a MsgBox() warning outlining the reason for failure.
; Author ........: guinness
; Example........; Yes
; Warning........; None
;=====================================================================================================================
#AutoIt3Wrapper_Au3Check_Parameters=-d -w 1 -w 2 -w 3 -w 4 -w 5 -w 6
;~ MD5Sig Converter Created By: guinness
;~ Last Textual Changes In This Script: 25th September 2010
;~ The Program Can Be Run By Selecting: <MD5Sig Converter.exe>
;~ Thanks To The Following...
;~ Icon -->
;~ Help -->
#NoTrayIcon
#AutoIt3Wrapper_Outfile=MD5Sig Converter.exe
#AutoIt3Wrapper_UseUpx=Y
#AutoIt3Wrapper_Res_Description=MD5Sig Converter
#AutoIt3Wrapper_Res_Fileversion=0.0.0.1
#AutoIt3Wrapper_Res_LegalCopyright=
#AutoIt3Wrapper_Res_Language=2057
#AutoIt3Wrapper_Res_Field=Website|
#AutoIt3Wrapper_Res_Field=E-Mail|comment at the website
#AutoIt3Wrapper_UseX64=N
#AutoIt3Wrapper_Run_Obfuscator=Y
#Obfuscator_Parameters=/SF /SV /OM /CS=0 /CN=0
#include <File.au3>
_Main()
; If you call the Function _Convert_MD5Sig(FileOpenDialog("Open TeraCopy/FileCheckMD5 MD5 File", @HomeDrive, "MD5 (*.md5)"), "|", ",") this will convert to DVDSig compatible MD5 file.
Func _Main()
Switch _Convert_MD5Sig(FileOpenDialog("Open DVDSig MD5 File", @HomeDrive, "MD5 (*.md5)"), ",", "|")
Case 1
MsgBox(64, "MD5Sig Converter", "Completed conversion.")
Case 0
If @extended = 1 Then
MsgBox(16, "MD5Sig Converter", "Error, unexpected problem occurred." & @CRLF & @CRLF & "Please try again.")
Else
MsgBox(16, "MD5Sig Converter", "Error, incorrect MD5 file has been chosen." & @CRLF & @CRLF & 'Ideally the filename should be called "dvdsig.md5"')
EndIf
EndSwitch
Exit
EndFunc ;==>_Main
Func _Convert_MD5Sig($MD5Sig_File, $Delimiter_Input = ",", $Delimiter_Output = "|")
Local $_FileReadToArray
_FileReadToArray($MD5Sig_File, $_FileReadToArray)
If Not @error Then
Local $TEMP_FileReadToArray[$_FileReadToArray[0] + 1][2]
For $A = 1 To $_FileReadToArray[0] ; Read each Array Value and StringSplit using ',' or '|' as the delimiter into 2 columns. (2D Array)
Local $StringSplit = StringSplit($_FileReadToArray[$A], $Delimiter_Input)
If @error Then Return SetError(1, 2, 0)
For $B = 1 To $StringSplit[0]
$TEMP_FileReadToArray[$A][$B - 1] = $StringSplit[$B]
Next
$TEMP_FileReadToArray[0][0] += 1
Next
For $A = 1 To $TEMP_FileReadToArray[0][0] ; Combine the StringSplit elements (Column 2 | 1) to MD5 '|' or ',' FileName. (1D Array)
$_FileReadToArray[$A] = $TEMP_FileReadToArray[$A][1] & $Delimiter_Output & $TEMP_FileReadToArray[$A][0]
$_FileReadToArray[0] += 1
Next
Local $MD5Sig_FileConverted = StringRegExpReplace($MD5Sig_File, "^.*\\|\..*$", "") & "_Converted.md5"
If FileExists(@ScriptDir & "\" & $MD5Sig_FileConverted) Then FileDelete(@ScriptDir & "\" & $MD5Sig_FileConverted) ; Delete old file if it exists.
_FileWriteFromArray(@ScriptDir & "\" & $MD5Sig_FileConverted, $_FileReadToArray, 1) ; Writing to a new .MD5 file using selected file + _Converted prefix.
Return 1
ElseIf @error Then
Return SetError(1, 1, 0)
EndIf
EndFunc ;==>_Convert_MD5Sig
Func __DVDSig_File() ; Call this Function if you wish to create a 'Fake' MD5 file.
Local $TEMP_FileReadToArray[100001]
For $A = 1 To 100000
$TEMP_FileReadToArray[$A] = "Test_Text,01234567890123456789"
$TEMP_FileReadToArray[0] += 1
Next
_FileWriteFromArray("Test.md5", $TEMP_FileReadToArray, 1)
Return 1
EndFunc ;==>__DVDSig_File