How to Delete a Directory in Ruby

In Ruby, there are several ways to delete a file or a directory. In this article, we will discuss two of the most commonly used methods: File.delete and FileUtils.remove_dir.

Method 1: File.delete

The File.delete method is a built-in Ruby method that is used to delete a single file. It takes the path of the file as an argument and deletes it if it exists. Here is an example of how to use the File.delete method:

path_to_file = "path/to/file.txt"

if File.exist?(path_to_file)
  File.delete(path_to_file)
  puts "File deleted successfully!"
else
  puts "File not found!"
end

In this example, we first check if the file exists at the given path using the File.exist? method. If the file exists, we delete it using the File.delete method. If the file does not exist, we print a message “File not found!”

Method 2: FileUtils.remove_dir

The FileUtils.remove_dir method is a part of the Ruby FileUtils module and is used to delete a directory and all of its contents. It takes the path of the directory as an argument and deletes it if it exists. Here is an example of how to use the FileUtils.remove_dir method:

path_to_directory = "path/to/directory"

if File.directory?(path_to_directory)
  FileUtils.remove_dir(path_to_directory)
  puts "Directory deleted successfully!"
else
  puts "Directory not found!"
end

In this example, we first check if the directory exists at the given path using the File.directory? method. If the directory exists, we delete it and its contents using the FileUtils.remove_dir method. If the directory does not exist, we print a message “Directory not found!”

It’s worth noting that if the directory is not empty, the FileUtils.remove_dir method will raise an exception Errno::ENOTEMPTY. To delete the directory recursively, you can use the FileUtils.remove_entry_secure method instead.

require 'fileutils'

path_to_directory = "path/to/directory"

if File.directory?(path_to_directory)
  FileUtils.remove_entry_secure(path_to_directory)
  puts "Directory deleted successfully!"
else
  puts "Directory not found!"
end

Conclusion:

In conclusion, deleting a file or a directory in Ruby is a simple task that can be accomplished using the built-in File.delete method or the FileUtils.remove_dir method. It’s important to always check if the file or directory exists before attempting to delete it, to avoid raising errors. And also be careful when removing a directory with the FileUtils.remove_dir method as it will delete the directory and its contents permanently.