Ruby 当我知道文件存在时,在Dir.foreach块期间获取Errno::enoint?
我当前将路径设置为:Ruby 当我知道文件存在时,在Dir.foreach块期间获取Errno::enoint?,ruby,file,foreach,directory,Ruby,File,Foreach,Directory,我当前将路径设置为: $: << "C:/Users/fireforkingjesus/ruby/note/" 如果我写下这段代码,它就可以正常工作了: Dir.foreach("notes/"){|file| puts file} 产出: . .. !IMPORTANT just.txt inventory.txt weapons.txt 但这些代码不起作用: Dir.foreach("notes/"){|file| puts file if File
$: << "C:/Users/fireforkingjesus/ruby/note/"
如果我写下这段代码,它就可以正常工作了:
Dir.foreach("notes/"){|file| puts file}
产出:
.
..
!IMPORTANT
just.txt
inventory.txt
weapons.txt
但这些代码不起作用:
Dir.foreach("notes/"){|file| puts file if File.exist?(file)}
上述^^^将
.
..
及
返回true
2次和false
4次
Dir.foreach("notes/"){ |file| puts File.ftype(file)}
上面的^^返回:“没有这样的文件或目录-!重要”(Errno::enoint)
我甚至做过这样的事:
f = "inventory.txt"
puts "yes before foreach" if File.exist?("notes/inventory.txt")
Dir.foreach("notes/"){ |file|
puts "yes in foreach" if File.exist?("inventory.txt")
puts File.ftype(f)
}
我得到:
yes before foreach
No such file or directory -inventory.txt (Errno::ENOENT)`
我有Ruby 2.0和Windows 8。我想也许吧?或者什么idk
我还在我爸爸的Win vista上试用过它仔细看看你的输出:
Dir.foreach("notes/"){|file| puts file}
# ----------^^^^^^^^
产生:
.
..
!IMPORTANT
just.txt
inventory.txt
weapons.txt
正在将基名称传递给块,因此如果Dir
未查看当前目录,则必须重新打开路径:
Dir.foreach("notes/") { |file| puts File.ftype("#{notes}/file") }
使用
和一切都很好。
当然,每个目录中都有它们。你说得很对。事实上,我刚刚明白了这一点,并开始回答我自己的问题。谢谢你的帮助。
.
..
!IMPORTANT
just.txt
inventory.txt
weapons.txt
Dir.foreach("notes/") { |file| puts File.ftype("#{notes}/file") }