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:
- El método exist() en la clase Dir se usa para verificar si un directorio existe o no.
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:
- El new() se usa para crear un nuevo objeto de directorio.
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