Compare 2 files with different names (checksum?)

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

that’s great, thanks Rick!
max

On Fri, Sep 18, 2009 at 12:05 PM, Max W.
[email protected] wrote:

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?

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 ==
Digest::SHA1.file(path_to_file_2).hexdigest
end


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

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. :confused:

thanks
max

Max W. wrote:

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

This forum is not affiliated to the Ruby language, Ruby on Rails framework, nor any Ruby applications discussed here.

| Privacy Policy | Terms of Service | Remote Ruby Jobs