Ruby робота з файлами

Моє знайомство з 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 - закрити потік.

Потік для файлу

Схожі статті