1

例如,我的工作目录名为“abc”(空目录),在这里,我启动了一个 ruby​​ 脚本,它将在当前目录下创建一个新目录和文件,例如“abc/a/a.file”。当它需要在这个 ruby​​ 脚本的同一进程中读取这个文件时(从不关闭),它不知道它(新文件)。所以,我需要告诉当前的 ruby​​ 进程来刷新自己当前工作的已知目录。

我在谷歌中找不到任何答案,感谢能帮助解决这个问题的人。我只是让当前进程知道并重新读取自己创建的新文件。

4

1 回答 1

1

对于当前目录,该进程正在使用:

Dir.pwd

对于运行脚本的目录:

File.dirname(__FILE__)

对于您创建的文件所在的目录:

f = File.new( "blah.rb", "w" )
# => #<File:blah.rb>
File.dirname f
# => "."

我希望这能回答你的问题。


如果你知道目录:

dir_name = "/my/amazing/project/"

# this returns an array of file names (no dot files) - but just the names.
files = Dir.new(dir_name).entries.reject{|f| f.start_with? "." }

# this will give you an array with each entry being the full path to each file.
files = Dir.new(dir_name).entries.reject{|f| f.start_with? "." }.map{|f| File.expand_path File.join( dir_name, f ) }

在 irb 中尝试上面的代码,只需替换dir_name为目录路径,甚至".".

于 2012-06-30T15:40:16.247 回答