【发布时间】:2013-12-29 02:59:35
【问题描述】:
我有一个 Ruby 程序,可以将文件从源文件夹复制到目标文件夹。
C:\srcdir\testfile.txt 是源文件夹,C:\targetdir 是目标文件夹。
程序不断报错:
copy_files.rb:11:in block in <main>': uninitialized constant FileUtils (NameError)
为什么会这样?这是我的代码:
sourcedir = "C:\\srcdir"
targetdir = "C:\\targetdir"
Dir.foreach(sourcedir){
|f|
filepath = "#{sourcedir}\\#{f}"
if !(File.directory?(filepath)) then
if File.exist?("#{targetdir}\\#{f}") then
puts("#{f} already exists in target directory (not copied)")
else
FileUtils.cp(filepath, targetdir)
puts("Copying... #{filepath}")
end
end
}
【问题讨论】:
-
你正在编写非常单一的 Ruby... 见 pastebin.com/Fz2kHgys
-
你能给我建议吗?我不明白你:)
-
请阅读IO documentation的开头; Ruby 可以避免使用反斜杠来定义文件系统中的路径,因此
C:\srcdir\testfile.txt更容易写成C:/srcdir/testfile.txt。
标签: ruby