這裏的一些幫助將不勝感激。目標是將所有.txt文件重命名爲ruby中用戶輸入的目錄中的.text。我必須使用fileutils作爲要求。當我運行我的當前腳本時,我沒有收到任何錯誤。然而,沒有任何事情發生......我相信你們中的一個人可能可以幫我指出這個問題。Ruby:將給定目錄中的所有文件從.txt重命名爲文本
#!/usr/bin/ruby
#This program was written by me
puts 「what directory would you like to change? 「
require 'fileutils'
pathname = gets.chomp
def rename(pathname)
currentdir = Dir.new('.')
newfile = FileTest.exists?(pathname.to_s)
if pathname != "q"
if newfile == "true"
require 'fileutils'
newfile.each do |f|
FileUtils.mv "#{File.dirname(f)}/#{File.basename(f, '.*')}.txt", "#{File.dirname(f)}/#{File.basename(f,'.*')}.text"
end
elsif currentdir
require 'fileutils'
(currentdir).each do |f|
FileUtils.mv "#{File.dirname(f)}/#{File.basename(f, '.*')}.txt", "#{File.dirname(f)}/#{File.basename(f,'.*')}.text"
end
else
puts "Invalid Path"
end
end
end
編輯:我想我現在知道這個問題,但不知道在哪裏把代碼。我需要cd到用戶輸入的目錄,這應該是我只能更改主目錄中的.txt文件的原因。
此問題與建議的意見不同,因爲要求是使用fileutils並讓用戶輸入他們想要編輯的目錄。此項查找文件名從任何地方,並且不使用文件實用程序
的可能的複製[如何在質量紅寶石重命名文件(http://stackoverflow.com/questions/10758694/how-to- mass-rename-files-in-ruby) – Wes
這可能是因爲你從來沒有真正調用過重命名方法嗎? – Rashmirathi
雖然不盡相同。要求是使用fileutils並讓用戶輸入他們想要編輯的目錄。此條目從任何地方查找文件名並且不使用fileutils –