存在於陣列的一些文件,我寫了下面的代碼放在一個目錄(從'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
嗨sawa,謝謝你的迴應,你可以把它寫入我的代碼(我試過這個解決方案,並沒有工作)。謝謝 – goldver
爲了得到沒有擴展名的文件名,使用'File.basename('test1.rb','.rb')' – Stefan