Open In App

Ruby Directories

A directory is a location where files can be stored. For Ruby, the Dir class and the FileUtils module manages directories and the File class handles the files. Double dot (..) refers to the parent directory for directories and single dot(.)refers to the directory itself.
The Dir Class 
The Dir class provides access to and contents of file system directory structures in Ruby.It provides a means of listing folder contents, generating file names with proper path separators, etc.
These are some of the features of the Dir class: 

Dir.mkdir "name_of_directory"




# creating directory
f=Dir.mkdir "abc"
 
# a directory named abc is created
print("#{f}")

0
Dir.exist?"name_of_directory"




# creating directory
puts Dir.mkdir("folder")
 
# checking if the directory exists or not
puts Dir.exists?("folder")

0
true
Dir.empty?"name_of_directory"




# creating directory
puts Dir.mkdir("folder")
 
# checking if the directory is empty or not
puts Dir.empty?("folder")

0
true
obj=Dir.new("name_of_directory")
Dir.pwd




# creating directory
Dir.mkdir("folder")
 
# returns current working directory
puts Dir.pwd 

/workspace
Dir.home




# creating directory
Dir.mkdir("folder")
 
# returns home directory
puts Dir.home

/workspace
Dir.home('username')
d=Dir.new("name_of_directory")
d.path




# creating directory
Dir.mkdir("folder")
 
# creating object of that directory using new() method
obj=Dir.new("folder")
 
# assigns the path parameter of obj to variable f
f=obj.path
print("#{f}")

folder
Dir.getwd




# creating directory
Dir.mkdir("folder")
 
# returns the path of the current working directory
puts Dir.getwd

/workspace
Dir.chdir("name_of_directory")




# creating directories
Dir.mkdir("/workspace/folder1")
Dir.mkdir("/workspace/folder2")
 
# displaying the path of the current directory
puts Dir.pwd
 
# changing the current working directory
Dir.chdir("folder2")
puts Dir.pwd

/workspace
/workspace/folder2
Dir.entries("directory")




# creating a directory named folder
Dir.mkdir("folder")
 
# displaying the path of the current directory
puts Dir.pwd
 
# changing current working directory to folder
Dir.chdir("folder")
puts Dir.pwd
 
# creating directories inside folder
Dir.mkdir("subfolder1")
Dir.mkdir("subfolder2")
Dir.mkdir("subfolder3")
 
# displays all the files and folders present in folder
print("Entries:\n")
puts Dir.entries("C:/Users/KIIT/Desktop/folder")

C:/Users/KIIT/Desktop
C:/Users/KIIT/Desktop/folder
Entries:
.
..
subfolder1
subfolder2
subfolder3
Dir.glob("pattern")




# creating a directory named folder
Dir.mkdir("folder")
 
# changing current working directory to folder
Dir.chdir("folder")
 
# creating directories inside folder
Dir.mkdir("dabce")
Dir.mkdir("abcd")
Dir.mkdir("program.rb")
Dir.mkdir("program2.rb")
 
# displaying specified files and folders
print"\nAll files in the current working directory: \n"
puts Dir.glob("*")
print"\nAll files containing 'abc' in the name: \n"
puts Dir.glob("*abc*")
print"\nAll ruby files: \n"
puts Dir.glob("*.rb")

All files in the current working directory:
abcd
dabce
program.rb
program2.rb

All files containing 'abc' in the name:
abcd
dabce

All ruby files:
program.rb
program2.rb
Dir.delete "folder"
Dir.rmdir "folder"
Dir.unlink "folder"




#creating directory
Dir.mkdir("folder")
puts Dir.exist?("folder")
 
# deleting directory
Dir.rmdir("folder")
puts Dir.exist?("folder")

true
false
FileUtils.mkdir_p 'directory_path'




# creating directory parent_folder
Dir.mkdir "parent_folder"
print("Current Directory: ")
puts Dir.pwd
require "fileutils"
 
# creating nested directory in parent_folder
FileUtils.mkdir_p "parent_folder/child_folder/folder"
 
# changing current directory to parent_folder
Dir.chdir("/workspace/parent_folder")
print("Current Directory: ")
puts Dir.pwd
# checking child folder exists or not
puts Dir.exists?("child_folder")
 
# changing current directory to child_folder
Dir.chdir("/workspace/parent_folder/child_folder")
print("Current Directory: ")
puts Dir.pwd
 
# checking folder exists or not
puts Dir.exists?("folder")

Current Directory: /workspace
Current Directory: /workspace/parent_folder
true
Current Directory: /workspace/parent_folder/child_folder
true
FileUtils.mv("source", "destination")




# creating directories
Dir.mkdir "folder1"
Dir.mkdir "folder2"
require "fileutils"
 
# moving directory folder1 into directory folder2
FileUtils.mv( "folder1", "folder2")
 
# changing current directory to folder2
Dir.chdir("folder2")
 
# checking if folder1 exists in folder 2
puts Dir.exists?("folder1")

true
FileUtils.cp("source", "destination")




require "fileutils"
 
# copying test.txt from folder1 to folder2
FileUtils.cp( "folder2/test.txt", "folder1")
Dir.chdir("folder1")
 
# checking if test.txt exists in folder1
puts File.exist?("test.txt")

true

Article Tags :