Directorios Ruby

Un directorio es una ubicación donde se pueden almacenar archivos. Para Ruby, la clase Dir y el módulo FileUtils administran directorios y la clase File maneja los archivos. El punto doble (..) se refiere al directorio principal para los directorios y el punto único (.) se refiere al directorio en sí.
La clase 
Dir La clase Dir brinda acceso y contenido de las estructuras de directorios del sistema de archivos en Ruby. Proporciona un medio para enumerar el contenido de las carpetas, generar nombres de archivo con separadores de ruta adecuados, etc.
Estas son algunas de las características de la clase Dir: 

  • Crear directorios Ruby: 
    El método mkdir() en la clase Dir se usa para crear directorios. Podemos usar el siguiente código para crear un directorio no anidado, el método mkdir() devuelve 0 si el directorio se crea correctamente. 
    Sintaxis:
Dir.mkdir "name_of_directory"
  • Ejemplo:

Ruby

# creating directory
f=Dir.mkdir "abc"
 
# a directory named abc is created
print("#{f}")
  • Producción:
0
  • Comprobando los directorios de Ruby: 
    • El método exist() en la clase Dir se usa para verificar si un directorio existe o no. 
      Sintaxis:
Dir.exist?"name_of_directory"
  • Ejemplo:

Ruby

# creating directory
puts Dir.mkdir("folder")
 
# checking if the directory exists or not
puts Dir.exists?("folder")
  • Producción:
0
true
  • ¿ El vacío? El método en la clase Dir se usa para verificar si un directorio está vacío o no. 
    Sintaxis:
Dir.empty?"name_of_directory"
  • Ejemplo:

Ruby

# creating directory
puts Dir.mkdir("folder")
 
# checking if the directory is empty or not
puts Dir.empty?("folder")
  • Producción:
0
true
  • Trabajar con directorios de Ruby: 
    la clase Dir utiliza diferentes métodos para las operaciones de directorio de Ruby, tales métodos son new(), pwd(), home(), path(), getwd(), chdir(),entries(), glob() etc. . 
    • El new() se usa para crear un nuevo objeto de directorio. 
      Sintaxis:
obj=Dir.new("name_of_directory")
  • En el código anterior, el directorio de carpetas ya debería existir.
  • El método pwd() en la clase Dir devuelve el directorio actual. 
    Sintaxis:
Dir.pwd
  • Ejemplo:

Ruby

# creating directory
Dir.mkdir("folder")
 
# returns current working directory
puts Dir.pwd 
  • Producción:
/workspace
  • El método home() en la clase Dir se usa para devolver el directorio de inicio del usuario actual. 
    Sintaxis:
Dir.home
  • Ejemplo:

Ruby

# creating directory
Dir.mkdir("folder")
 
# returns home directory
puts Dir.home
  • Producción:
/workspace
  • El siguiente código devolverá el directorio de inicio de un usuario específico.
Dir.home('username')
  • El método path() de la clase Dir se usa para devolver el parámetro de ruta. 
    Sintaxis:
d=Dir.new("name_of_directory")
d.path
  • Ejemplo:

Ruby

# 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}")
  • Producción:
folder
  • El método getwd() de la clase Dir se usa para devolver la ruta del directorio actual. 
    Sintaxis:
Dir.getwd
  • Ejemplo:

Ruby

# creating directory
Dir.mkdir("folder")
 
# returns the path of the current working directory
puts Dir.getwd
  • Producción:
/workspace
  • El método chdir() de la clase Dir se usa para modificar el directorio actual. 
    Sintaxis:
Dir.chdir("name_of_directory")
  • Ejemplo:

Ruby

# 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
  • Producción:
/workspace
/workspace/folder2
  • El métodoentries() en la clase Dir se usa para devolver todos los archivos y carpetas presentes en el directorio en una array. 
    Sintaxis:
Dir.entries("directory")
  • Ejemplo:

Ruby

# 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")
  • Producción:
C:/Users/KIIT/Desktop
C:/Users/KIIT/Desktop/folder
Entries:
.
..
subfolder1
subfolder2
subfolder3
  • El método glob() en la clase Dir se usa para mostrar todos los archivos que tienen un cierto patrón coincidente. 
    Sintaxis:
Dir.glob("pattern")
  • Ejemplo:

Ruby

# 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")
  • Producción:
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
  • Eliminación de directorios de Ruby: 
    existen varios métodos en la clase Dir para eliminar directorios de Ruby como rmdir(), delete() y unlink()  
    Sintaxis:
Dir.delete "folder"
Dir.rmdir "folder"
Dir.unlink "folder"
  • Ejemplo:

Ruby

#creating directory
Dir.mkdir("folder")
puts Dir.exist?("folder")
 
# deleting directory
Dir.rmdir("folder")
puts Dir.exist?("folder")
  • Producción:
true
false
  • Creación de un directorio anidado: el método  
    mkdir_p() en el módulo FileUtils se usa para crear un directorio y todos sus directorios principales. 
    Sintaxis:
FileUtils.mkdir_p 'directory_path'
  • Ejemplo:

Ruby

# 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")
  • Producción:
Current Directory: /workspace
Current Directory: /workspace/parent_folder
true
Current Directory: /workspace/parent_folder/child_folder
true
  • Mover archivos y carpetas: los métodos  
    mv() y move() en el módulo FileUtils se utilizan para mover archivos y carpetas del directorio actual al directorio de destino. 
    Sintaxis:
FileUtils.mv("source", "destination")
  • Ejemplo:

Ruby

# 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")
  • Producción:
true
  • Copiar archivos de un directorio a otro directorio: el método  
    cp() en el módulo FileUtils se usa para copiar archivos del directorio actual al directorio de destino. 
    Sintaxis:
FileUtils.cp("source", "destination")
  • Ejemplo: 
    Considere que dos directorios carpeta1 y carpeta2 ya están creados y carpeta2 contiene test.txt.

Ruby

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")
  • Producción:
true

Publicación traducida automáticamente

Artículo escrito por riturajsaha y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *