Не могу проверить, существует ли каталог из Fastlane с Ruby
Я не могу проверить, существует ли каталог в действии Fastlane или в полосе. Ни одна из следующих работ для save_path = "./dir_name"
ни save_path = "dir_name"
в текущем каталоге (из которого fastlane
выполняется):
!Dir.empty?(save_path)
!Dir[save_path].empty?
Dir.exist?(save_path)
File.exist?(save_path)
File.directory?(save_path)
Я даже попытался расширить относительный путь:
File.exists? File.expand_path(save_path)
Я сослался на следующее:
- Проверьте, является ли каталог пустым в Ruby
- Как проверить, существует ли данный каталог в Ruby
- https://blog.bigbinary.com/2017/02/28/dir-emtpy-included-in-ruby-2-4.html
- https://ruby-doc.org/core-2.2.0/Dir.html
Как можно проверить, существует ли каталог из Fastlane? Спасибо за чтение и за вашу помощь!
2 ответа
Правильный формат, чтобы проверить это:
Dir.exist? "#{save_path}"
Вернет истину, если она существует, или ложь, если нет.
LOL Ну, я обнаружил свою проблему. Я не осознавал, что мне нужно было включать полный путь к каждому из этих утверждений, так как я использую Dir.foreach
перебирать часть файловой системы; обновленный синтаксис:
Dir.foreach(save_path) do |dir|
next if dir == '.' or dir == '..'
if (File.directory?("#{save_path}#{dir}"))
begin
FileUtils.mkdir_p("./#{save_path}#{dir}/images")
rescue StandardError => e
UI.message("Failed to make directory ./#{save_path}#{dir}/images: #{e.to_s}")
return
end
end
end
Это против File.directory?("#{dir}")
в этом, если заявление. Я думал, что Рубин Dir
а также FileUtil
библиотеки будут выглядеть относительно текущего каталога для оставшейся части пути.