Compare 2 files with different names (checksum?)

M

Max Williams

Hey all

I've been using File.compare to see if two files are the same, but now i
have the case where one is a renamed copy of the other. I'd like to
treat these two as the same in this case. Can anyone suggest a test
that doesn't care about names?

The files that have been renamed are xml (ie text format) if that makes
life easier but a solution that works with binaries as well would be
ideal.

I've been trying to google checksums in ruby but haven't seen a useful
example, maybe i was just being blind. Will a checksum ignore the name
of the file?

thanks
max
 
R

Rick DeNatale

Hey all

I've been using File.compare to see if two files are the same, but now i
have the case where one is a renamed copy of the other. =A0I'd like to
treat these two as the same in this case. =A0Can anyone suggest a test
that doesn't care about names?

The files that have been renamed are xml (ie text format) if that makes
life easier but a solution that works with binaries as well would be
ideal.

I've been trying to google checksums in ruby but haven't seen a useful
example, maybe i was just being blind. =A0Will a checksum ignore the name
of the file?

google for Ruby digest. A SHA1 hash is a good alternative.

require 'digest/sha1'

def contents_equal?(path_to_file_1, path_to_file_2)
Digest::SHA1.file(path_to_file_1).hexdigest =3D=3D
Digest::SHA1.file(path_to_file_2).hexdigest
end


--=20
Rick DeNatale

Blog: http://talklikeaduck.denhaven2.com/
Twitter: http://twitter.com/RickDeNatale
WWR: http://www.workingwithrails.com/person/9021-rick-denatale
LinkedIn: http://www.linkedin.com/in/rickdenatale
 
S

Siep Korteling

Max said:
Hey all

I've been using File.compare to see if two files are the same, but now i
have the case where one is a renamed copy of the other. I'd like to
treat these two as the same in this case. Can anyone suggest a test
that doesn't care about names?

The files that have been renamed are xml (ie text format) if that makes
life easier but a solution that works with binaries as well would be
ideal.

I've been trying to google checksums in ruby but haven't seen a useful
example, maybe i was just being blind. Will a checksum ignore the name
of the file?

thanks
max

Hmm? File.compare does not care about names, the content of the files is
compared.

require 'ftools'
File.compare(path_to_file_1, path_to_file_2)

Works fine for me (Ruby 1.8.6, WinXP). Are there issues I'm not aware
of?

Kind regards,

Siep
 
M

Max Williams

Hmmm (tests) - no Siep, you're right. Looks like the two files i
thought were the same weren't after all. Which is a problem, since the
second one is supposed to be a renamed copy of the first. Looks like i
need to go back a step here. :/

thanks
max
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

No members online now.

Forum statistics

Threads
473,763
Messages
2,569,562
Members
45,038
Latest member
OrderProperKetocapsules

Latest Threads

Top