You are confusing two different topics together:
1. HashTables are in memory data structures not file based.
2. MD5 cryptographic hash functions compute a result based on the input to the function
I presume you want to create a "virus checking system" to detect changes to files.
1. You need disk based storage for the filename and md5 hash results as you cannot keep them all in memory and it would be time consuming to go through them all every time.
2. You need an optimal way of extracting data from that storage system.
For this check my
RaptorDB code as it is a disk based hash storage system