Ruby Directories (original) (raw)

Last Updated : 25 Jan, 2022

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