Проверка существования директории

Ruby:
Проверка существования директории

Как это сделать:

В Ruby вы можете использовать метод Dir.exist?, чтобы проверить, существует ли директория. Вот как это выглядит:

if Dir.exist?("/path/to/directory")
  puts "Директория существует!"
else
  puts "Такой директории нет."
end

Пример вывода, когда директория существует:

Директория существует!

И когда её нет:

Такой директории нет.

Подробнее

Исторически Ruby предлагал множество способов взаимодействия с файловой системой. Теперь Dir.exist? является предпочтительным методом из-за его ясности и простоты, но в старом коде может использоваться File.directory?. Оба метода означают практически одно и то же и в большей степени взаимозаменяемы.

# Использование File.directory? для достижения того же результата
if File.directory?("/path/to/directory")
  puts "Директория существует!"
else
  puts "Такой директории нет."
end

Почему эта избыточность? Это часть принципа Ruby, предоставляющего программистам больше одного способа сделать что-то. Тем не менее, Dir.exist? можно считать более семантически точным способом проверки конкретно директорий.

С точки зрения реализации под капотом, когда вы вызываете Dir.exist?, Ruby просит операционную систему проверить файловую систему, которая проверяет, указывает ли заданный путь на директорию.

Что касается альтернатив, помимо ручной проверки пути, вы также можете перехватывать исключения, возникающие при попытке доступа к несуществующей директории. Однако это не рекомендуется, поскольку это более затратно в плане системных ресурсов и менее понятно для кого-то, кто читает код.

См. также

Чтобы узнать больше о работе с файлами и директориями в Ruby, ознакомьтесь со следующими ресурсами: