Моє знайомство з Ruby. Можливо комусь стане в нагоді, коли буде починати його вчити. Коротка інформація про файли і директорії. З програм, написаних на Ruby, можна управляти каталогами та файлами за допомогою класів Dir і File. Існує ще FileUtils, з безліччю цікавих методів.
Каталоги
Щоб працювати з каталогами, можна скористатися за допомогою класу Dir. Основні методи які використовуються Dir.pwd, Dir.chdir або Dir.getwd і Dir.mkdir.
Якщо вам необхідний каталог, створіть його за допомогою mkdir, щоб видалити його скористайтеся rmdir.
Метод entries класу Dir повертає масив, який містить всі елементи, знайдені в каталозі, включаючи файли, приховані файли та інші каталоги.
Те ж саме можна зробити за допомогою foreach:
потік каталогу
Метод класу open / new відриває потік каталогу.
- path - повідомляє шлях потоку.
- tell - повертає поточний елемент
- read - читає з dir наступний доступний елемент
- rewind - повертає в початок потоку
файли
Створюємо новий файл
Створити новий файл і в той же час відкрити його, необхідно застосувати метод new з клас File:
Перший параметр вказати шлях, а другий визначаємо режимний код файлу, режими стандартні (r +, w +, a +, b)
Існуючий файл відкривають за допомогою методу open.
Ще один цікавий спосіб організації використання глобальний змінних ARGV / ARGF.
ARGV - це масив і кожен його елемент є ім'ям файлу. В даному випадки ми додали ім'я файлу за допомогою "<<” метод из Array.
gets - це метод з Kernel витягує рядки з ARGV і до тих пір, поки повертає рядок.
ARGF - є віртуальною конкатенацией всіх файлів, вказаних в командному рядку.
Видалення і перейменовуємо файли
За допомогою Ruby можна перейменувати / видалити файли програмно, методи rename / delete.
файлові запити
Перевірка, чи існує файл, перш ніж відкрити його:
exist? - синонім exists?
Перевірити чи є файл дійсно файлом
Метод readable? - призначений чи файл читання
Метод writable? - призначений чи файл запису
Метод executable? - виконуваний чи файл
Метод zero? - чи має файл нульову довжину
Метод size? - отримати довжину файлу (* можна і без?)
Метод ftype запросити тип файлу
поверне рядок з типом файлу file, directory, characterSpecial, blockSpecial, fifo, link, socket, або unknown
Метод ctime - коли був створений файл
Метод mtime - коли був змінений файл
Метод atime - коли останній раз зверталися до файлу
Змінити режимний код файлу і власника
режимний код - це права доступу до файлу, метод chmod з маскою як в Unix системі.
власника / групу для файлу методом chown який подібний до команді chown в Unix./
клас IO
клас IO представляє вхідні / вихідні потоки даних в форматі байтів. В потоки входять:
- $ Stdin - з клавіатури
- $ Stdout - на дисплей
- $ Stderr - вихідний потік повідомлень про помилки, за замовчуванням на дисплей.
Клас IO тісно пов'язаний з класом File.
Перший параметр 1 - це числовий дескриптор файлу для стандартного введення. Стандартний введення може бути визначений.
0 - стнд. вхідний потік, зумовлена змінна $ stdin (STDIN - оточення в Ruby)
1 - стнд. вихідний потік $ stdout (STDOUT)
2 - стнд. потік повідомлень про помилки $ stderr (STDERR)
метод екземпляра класу fileno ви можете перевірити який числовий дескриптор файлу встановлений
Метод flush - скинути буфер, записати рядки в потік, за допомогою методу <<затем сбросить.
Метод close - закрити потік.
Потік для файлу