23.6. Zmiana nazw grupy plików
Problem
Chcemy zmienić nazwy grupie plików z poziomu kodu, na przykład w celu ujednolicenia wielkości liter w nazwach lub zmiany rozszerzenia.
Rozwiązanie
Można skorzystać z modułu Find
dostępnego w standardowej bibliotece języka Ruby. Poniżej zamieszczono metodę, która zmienia nazwy plików na podstawie wyników zwracanych przez blok kodowy. Metoda zwraca listę plików, dla których nie udało się zmienić nazwy, ponieważ plik o proponowanej nazwie już istniał:
require 'find' module Find def rename(*paths) unrenamable = [] find(*paths) do |file| next unless File.file? file # Pominięcie katalogów path, name = File.split(file) new_name = yield name if new_name and new_name != name new_path = File.join(path, ...
Get Ruby. Receptury now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.