Comparing Files: Is it better to use multiple hash algorithms or just one?
MD5 is vulnerable to a lot of collision attacks, so if you don't trust the users it is possible for them to make files which hash to the same value as other files but which are not in fact the same.

I think you are misunderstanding how a hash works though.  It does not read bits and pieces of the file, it processes the whole thing into a small output which is a "signature" of that file.  With very, very high probability (if your hash function is good) it is unlikely that two files will create the same hash if they are not, in fact, the same file.  But, it is not by itself any faster than comparing piecewise whether two files are equal.

Where it helps is when you have a bunch of files and you want to check whether a new file is the same as one that you already have.  You can store the individual hashes of the files, and then just check the hash of the new file against all of the existing hashes.  Now instead of manually checking file vs file over and over, you can just compare the small hash values.