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.