Re: Hash function
- To: mathgroup at smc.vnet.net
- Subject: [mg97550] Re: Hash function
- From: "Sjoerd C. de Vries" <sjoerd.c.devries at gmail.com>
- Date: Sat, 14 Mar 2009 18:19:02 -0500 (EST)
- References: <gpg1ju$co0$1@smc.vnet.net>
Hash does a hash on the expression that is its argument, in this case
the file name (which is different for both locations if you include
the path). You need FileHash, which does a hash on the file itself.
Cheers -- Sjoerd
On Mar 14, 12:41 pm, Ignacio Plazeta <Ignacio.Plaz... at speednet.es>
wrote:
> Dear Friends
>
> I bet I'm wrong in a childish way but I'm
> incapable to overcome the bug.
>
> Why does the following code return discrepant values
> when processing two identical file ( CRTL + C , CRTL + V )
> placed in two different folders ? Of course, I'm looking on only
> the Hash part of the out, being obviously the folder related part.
>
> Warmest regards.
> Ignacio
>
> fileIdentifier[myFile_]:=Module[{ tmp , folderPos },
> folderPos = StringPosition[myFile,"\\"]//Flatten//Max;
> tmp={
> FileByteCount[myFile],
> Hash[myFile,"SHA512"],
> StringJoin[
> (If[#>10,ToString[#],"0"<>ToString[#]])&/@FileDate[myFile]
> ],
> StringTake[myFile,folderPos-1],
> StringDrop[myFile,folderPos]
> };
> Return[tmp];
> ]