当我在Ruby中编写下面的代码时,它给了我一个错误:
x = "c:/"
y = "Users/Amiref"
z = "/"
h = "Downloads"
v= x+y+z+h
Dir.foreach("v") do |i|
puts i
end
但是当我使用下面的代码时,Ruby不会给我任何错误:
Dir.foreach("c:/Users/Amiref/Downloads") do |i|
puts i
end
我真的很困惑。请帮我 。 感谢
答案 0 :(得分:4)
v - 它被用作变量而不是字符串。
答案 1 :(得分:2)
这是因为你引用了v
。
这意味着您正在浏览一个名为v
的目录,该目录可能不存在。 :)
删除引号,它将是您想要的目录。
答案 2 :(得分:1)
您需要Dir.foreach(v)
,而v
答案 3 :(得分:1)
正如其他答案所公布的那样:你可能不引用'v'。 另一个提示:相反,手动构建路径,可以使用File#join:
dir= File.join("c:", "Users", "Amiref", "Downloads")
Dir.foreach(dir) do |i|
puts i
end
答案 4 :(得分:0)
代码
Dir.foreach("v") do |i|
puts i
end
尝试遍历名为“v”的“目录”(很可能是\ v或c:\ v)并打印全部 文件和目录低于那个。
你真正的意思可能是
x = "c:/"
y = "Users/Amiref"
z = "/"
h = "Downloads"
v= x+y+z+h
Dir.foreach(v) do |i|
puts i
end
<强>然而强> 我建议使用File#join将文件夹连接在一起,这样你就可以独立于平台(无论如何),而且不必像这样摆弄windows backslashes()和unix样式斜杠(/):
dir_path = File.join("C:", "Users", "Amiret", "Downloads")
Dir.foreach(dirpath) do |dir|
puts dir
end