Bird
Raised Fist0
Rubyprogramming~10 mins

Dir operations for directories in Ruby - Interactive Code Practice

Choose your learning style10 modes available
Practice - 5 Tasks
Answer the questions below
1fill in blank
easy

Complete the code to list all files in the current directory.

Ruby
files = Dir.[1](".")
puts files
Drag options to blanks, or click blank then click option'
Aentries
Bopen
Cread
Dlist
Attempts:
3 left
💡 Hint
Common Mistakes
Using Dir.open returns a directory object, not an array.
Dir.read is not a valid method.
Dir.list does not exist.
2fill in blank
medium

Complete the code to change the current working directory to '/tmp'.

Ruby
Dir.[1]("/tmp")
Drag options to blanks, or click blank then click option'
Aopen
Bcd
Cchange
Dchdir
Attempts:
3 left
💡 Hint
Common Mistakes
Using Dir.open does not change directory.
Dir.cd is not a Ruby method.
Dir.change does not exist.
3fill in blank
hard

Fix the error in the code to get the current working directory.

Ruby
current_dir = Dir.[1]
Drag options to blanks, or click blank then click option'
Apwd
Bpwd()
Cgetwd
Dget_current_dir
Attempts:
3 left
💡 Hint
Common Mistakes
Dir.pwd is an alias for Dir.getwd.
Dir.pwd() is invalid syntax in Ruby.
Dir.get_current_dir does not exist.
4fill in blank
hard

Fill both blanks to create a new directory named 'test_dir' and then remove it.

Ruby
Dir.[1]("test_dir")
Dir.[2]("test_dir")
Drag options to blanks, or click blank then click option'
Amkdir
Brmdir
Cremove
Ddelete
Attempts:
3 left
💡 Hint
Common Mistakes
Using Dir.remove or Dir.delete which do not exist.
Trying to remove a directory before creating it.
5fill in blank
hard

Fill all three blanks to list all Ruby files in the current directory using a pattern.

Ruby
ruby_files = Dir.[1]("*.[2]")
ruby_files.each do |[3]|
  puts [3]
end
Drag options to blanks, or click blank then click option'
Aglob
Brb
Cfile
Dfilename
Attempts:
3 left
💡 Hint
Common Mistakes
Using Dir.entries instead of Dir.glob for pattern matching.
Using incorrect file extension.
Using a block variable name that is not consistent.

Practice

(1/5)
1. Which Ruby method lists all files and folders inside a directory including . and ..?
easy
A. Dir.chdir
B. Dir.mkdir
C. Dir.exist?
D. Dir.entries

Solution

  1. Step 1: Understand the purpose of Dir.entries

    This method returns an array of all entries in the directory, including special entries . and ...
  2. Step 2: Compare with other methods

    Dir.mkdir creates a directory, Dir.exist? checks if a directory exists, and Dir.chdir changes the current directory. None of these list contents.
  3. Final Answer:

    Dir.entries -> Option D
  4. Quick Check:

    List directory contents = Dir.entries [OK]
Hint: Use Dir.entries to list all files and folders [OK]
Common Mistakes:
  • Confusing Dir.entries with Dir.mkdir
  • Using Dir.exist? to list files
  • Thinking Dir.chdir lists directory contents
2. Which of the following is the correct syntax to create a new directory named test_folder in Ruby?
easy
A. Dir.mkdir('test_folder')
B. Dir.create('test_folder')
C. Dir.make('test_folder')
D. Dir.new('test_folder')

Solution

  1. Step 1: Recall the method to create directories

    The correct Ruby method to create a directory is Dir.mkdir.
  2. Step 2: Check syntax correctness

    Dir.mkdir('test_folder') correctly creates a directory named 'test_folder'. Other options are invalid methods.
  3. Final Answer:

    Dir.mkdir('test_folder') -> Option A
  4. Quick Check:

    Create directory = Dir.mkdir [OK]
Hint: Use Dir.mkdir('folder_name') to create directories [OK]
Common Mistakes:
  • Using Dir.create instead of Dir.mkdir
  • Trying Dir.new for directory creation
  • Misspelling method names
3. What will be the output of the following Ruby code?
Dir.mkdir('sample_dir') unless Dir.exist?('sample_dir')
entries = Dir.entries('sample_dir')
puts entries.inspect
medium
A. []
B. ["sample_dir"]
C. [".", ".."]
D. Error: Directory not found

Solution

  1. Step 1: Check directory creation and existence

    The code creates 'sample_dir' if it does not exist, so the directory will exist before listing entries.
  2. Step 2: Understand Dir.entries output for empty directory

    An empty directory still contains special entries: . (current directory) and .. (parent directory). So, Dir.entries returns [".", ".."].
  3. Final Answer:

    [".", ".."] -> Option C
  4. Quick Check:

    Empty directory entries = [".", ".."] [OK]
Hint: Empty dirs always show '.' and '..' in Dir.entries [OK]
Common Mistakes:
  • Expecting empty array for empty directory
  • Thinking directory name appears in entries
  • Assuming error if directory just created
4. Identify the error in this Ruby code snippet that tries to remove a directory:
Dir.rmdir('my_folder')
puts 'Folder removed'
medium
A. Dir.rmdir only removes non-empty directories
B. Dir.rmdir requires the directory to be empty before removal
C. Dir.rmdir should be Dir.remove
D. Dir.rmdir needs a block to execute

Solution

  1. Step 1: Understand Dir.rmdir behavior

    Dir.rmdir removes only empty directories. If 'my_folder' contains files or folders, it will raise an error.
  2. Step 2: Check other options for correctness

    Dir.rmdir only removes non-empty directories is wrong because it says the opposite. Dir.rmdir should be Dir.remove is invalid method name. Dir.rmdir needs a block to execute is incorrect; no block needed.
  3. Final Answer:

    Dir.rmdir requires the directory to be empty before removal -> Option B
  4. Quick Check:

    Dir.rmdir removes empty dirs only [OK]
Hint: Dir.rmdir only deletes empty directories [OK]
Common Mistakes:
  • Trying to remove non-empty directories with Dir.rmdir
  • Using wrong method name like Dir.remove
  • Expecting Dir.rmdir to accept a block
5. You want to change the current working directory to projects, create a new folder new_app inside it, and then list the contents of projects. Which sequence of Ruby commands correctly does this?
hard
A. Dir.chdir('projects') Dir.mkdir('new_app') puts Dir.entries('.')
B. Dir.mkdir('new_app') Dir.chdir('projects') puts Dir.entries('new_app')
C. Dir.entries('projects') Dir.mkdir('new_app') Dir.chdir('new_app')
D. Dir.chdir('new_app') Dir.mkdir('projects') puts Dir.entries('.')

Solution

  1. Step 1: Change directory to 'projects'

    Using Dir.chdir('projects') sets the current directory to 'projects'.
  2. Step 2: Create 'new_app' inside 'projects'

    Dir.mkdir('new_app') creates the new folder inside the current directory.
  3. Step 3: List contents of current directory

    Dir.entries('.') lists all files and folders inside 'projects', including 'new_app'.
  4. Final Answer:

    Dir.chdir('projects') Dir.mkdir('new_app') puts Dir.entries('.') -> Option A
  5. Quick Check:

    Change dir, create folder, list contents = Dir.chdir('projects') Dir.mkdir('new_app') puts Dir.entries('.') [OK]
Hint: Change dir first, then create folder, then list with Dir.entries('.') [OK]
Common Mistakes:
  • Creating folder before changing directory
  • Listing wrong directory contents
  • Changing to new folder before creating it
Recommended

Ready to prove it?

Pass the test and this pattern moves unknown strong while earning +1 Grip toward your certificate.

10 questions~5 mineasy hard