best way to remove file extension

tokhi picture tokhi · Jan 3, 2014 · Viewed 25.2k times · Source

What is the shortest way to remove file extension? this is what I have tried:

file = "/home/usr/my_file.xml"
file = File.basename(file)
file.slice! File.extname(file)   #=> my_file

Answer

Arup Rakshit picture Arup Rakshit · Jan 3, 2014

Read the documentation of File::basename :

basename(file_name [, suffix] ) → base_name

Returns the last component of the filename given in file_name, which can be formed using both File::SEPARATOR and File::ALT_SEPARETOR as the separator when File::ALT_SEPARATOR is not nil. If suffix is given and present at the end of file_name, it is removed.

file = "/home/usr/my_file.xml"
File.basename(file,File.extname(file)) # => "my_file"