Я написал следующий код, чтобы переименовать несколько файлов в каталоге (от 'rb'
до 'origin'
):Проверьте некоторые файлы в массиве существует в каталоге
original_files = ['test1.rb', 'test2.rb']
ruby_block "Rename file" do
block do
for filename in original_files
newname = filename.split(".")[0] + '.origin'
::File.rename("C:\\Test\\#{filename}", "C:\\Test\\#{newname}")
end
end
end
Когда я запускаю его во второй раз, я получаю что эти файлы не существуют, что ожидается.
Как я могу проверить, если эти файлы существуют или не нравится:
if ::File.exist?("C:\\Test\\*.origin")
Chef::Log.info("########## Your files are already renamed ############")
else
my_code
end
или другим способом (возможно, чтобы проверить его в цикле)?
Использование 'Dir' класса. – sawa
Hi sawa, спасибо за ваш ответ. Не могли бы вы написать его в мой код (я пробовал это решение и не работал). Спасибо – goldver
Чтобы получить имя файла без расширения, используйте 'File.basename ('test1.rb', '.rb')' – Stefan