method

join

Importance_1
Ruby latest stable (v1_8_6_287) - 1 note - Class: File
join(...) public

Returns a new string formed by joining the strings using File::SEPARATOR.

   File.join("usr", "mail", "gumby")   #=> "usr/mail/gumby"
Show source
Register or log in to add new notes.
October 9, 2008
3 thanks

Works with URLs too!

You can use it for web urls as well:

  path, file = File.split('/uploads/art/2869-speaking-of-pic.jpg')

  p path # => "/uploads/art"

  p file # => "2869-speaking-of-pic.jpg"

And you can also use join, to merge url back from the components:

  path = File.join(["/uploads/art", "2869-speaking-of-pic.jpg"])

  p path # => "/uploads/art/2869-speaking-of-pic.jpg"

Using #join and #split for operations on files and path parts of the URLs is generally better than simply joining/splitting strings by ’/’ symbol. Mostly because of normalization:

  File.split('//tmp///someimage.jpg') # => ["/tmp", "someimage.jpg"]

  '//tmp///someimage.jpg'.split('/') # => ["", "", "tmp", "", "", "someimage.jpg"]

Same thing happens with join.