How to remove file extension in Ruby

1 Answer

0 votes
# Removes the last file extension from a filename or path.
#
# Examples:
#   document.pdf      -> document
#   archive.tar.gz    -> archive.tar
#   photo.jpg         -> photo
#   README            -> README
#   /tmp/file.txt     -> /tmp/file
#
# Parameters:
#   file_path - A filename or full path.
#
# Returns:
#   The filename/path without its last extension.
def remove_file_extension(file_path)
  raise ArgumentError, "file_path cannot be empty" if file_path.nil? || file_path.empty?

  extension = File.extname(file_path)

  # Return the original path if no extension exists.
  return file_path if extension.empty?

  file_path.delete_suffix(extension)
end

# Example usage
puts remove_file_extension("document.pdf")
puts remove_file_extension("archive.tar.gz")
puts remove_file_extension("/tmp/file.txt")
puts remove_file_extension("README")



# run:
#
# document
# archive.tar
# /tmp/file
# README
#

 



answered 1 day ago by avibootz
...