【发布时间】:2016-11-17 23:39:08
【问题描述】:
我们将不胜感激。目标是将所有 .txt 文件从用户输入的 ruby 目录重命名为 .text。我必须使用 fileutils 作为要求。当我运行我当前的脚本时,我没有收到任何错误。但是,也没有任何反应……我相信你们中的一个人可能会帮助我查明问题。
#!/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 文件的原因。
这个问题与建议的 cmets 之一不同,因为要求是使用 fileutils 并让用户输入他们想要编辑的目录。此条目从 ANYWHERE 查找文件名,并且不使用 fileutils
【问题讨论】:
-
可能是因为您从未真正调用过
rename方法吗? -
虽然不一样。要求是使用 fileutils 并让用户输入他们想要编辑的目录。此条目从 ANYWHERE 查找文件名,并且不使用 fileutils