6.1. Czy taki plik istnieje?

Problem

Chcemy sprawdzić, czy plik o podanej nazwie istnieje i czy jest przydatny do określonych celów.

Rozwiązanie

Zasadniczo istnienie pliku o danej nazwie sprawdza się za pomocą predykatu File.file?, zwracającego wartość true tylko wtedy, gdy nazwa ta identyfikuje „regularny” plik — nie katalog, gniazdo ani inny specjalny strumień wejścia-wyjścia.

filename = 'a_file.txt'
File.file? filename                  # => false

require 'fileutils'
FileUtils.touch(filename)
File.file? filename                  # => true

Za pomocą predykatu File.exists? można natomiast sprawdzić, czy podana nazwa identyfikuje jakikolwiek strumień wejścia-wyjścia, na przykład katalog.

directory_name = 'a_directory' File.exists? directory_name # => false FileUtils.mkdir(directory_name) ...

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.