까지 바꿉니다. 여기에 도움이 될 것입니다. 목표는 모든 .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를 사용하고 사용자가 편집 할 디렉토리를 입력하도록 요구하기 때문에 제안 된 설명과 다릅니다. 당신은 rename
기능
2) rename
기능은 불필요한 검사를했다 호출되지 않은
1)이 항목은 어디에서 파일 이름을 찾습니다 내가 당신의 코드에서 알고있는 것처럼 fileutils에 속하는 명령어
가능한 복제 [대량 루비에있는 파일의 이름을 변경하는 방법 (http://stackoverflow.com/questions/10758694/how-to- mass-rename-files-in-ruby) – Wes
실제로 'rename'메소드를 실제로 호출하지 않았기 때문일 수 있습니까? – Rashmirathi
그것은 동일하지 않습니다. 요구 사항은 fileutils를 사용하고 사용자가 편집하고자하는 디렉토리를 입력하게하십시오. 이 항목은 어디에서든지 파일 이름을 찾고 fileutils를 사용하지 않습니다. –