Ruby simplifică operațiile cu sistemul de fișiere prin clasele încorporate File, Dir și biblioteca standard fileutils. Utilizarea blocurilor la deschiderea fișierelor garantează închiderea automată a descriptorilor de fișiere chiar și în caz de eroare.
Citirea și scrierea fișierelor în mod idiomatic
# 1. Citire dintr-o singură linie (slurp complet):
continut = File.read("config.ini", encoding: "UTF-8")
linii = File.readlines("utilizatori.csv", chomp: true) # elimină automat \n
# 2. Scriere sigură cu bloc (garantează flush și close automat):
File.open("raport.txt", "w:UTF-8") do |f|
f.puts "=== RAPORT GENERAL ==="
f.puts "Generat la data: #{Time.now}"
f.printf("Total articole procesate: %d\n", 1250)
end
# 3. Verificări și metadate de fișier:
cale = "raport.txt"
if File.exist?(cale)
puts "Mărime: #{File.size(cale)} octeți"
puts "Ultima modificare: #{File.mtime(cale)}"
puts "Extensie: #{File.extname(cale)}" # .txt
puts "Nume bază: #{File.basename(cale)}" # raport.txt
end
Căutarea fișierelor cu Dir.glob și operații pe directoare
# Căutare recursivă a tuturor fișierelor Ruby din proiect:
fisiere_rb = Dir.glob("**/*.rb")
puts "S-au găsit #{fisiere_rb.length} fișiere Ruby."
# Crearea și ștergerea directoarelor cu FileUtils:
require "fileutils"
FileUtils.mkdir_p("backup/arhive/2026") # creează întregul arbore de directoare
FileUtils.cp("raport.txt", "backup/arhive/2026/raport_salvat.txt")