例如,我的工作目录名为“abc”(空目录),在这里,我启动了一个ruby脚本,它将在当前目录下创建一个新目录和文件,如“abc / a / a”。文件”。当需要在这个ruby脚本的相同进程中读取此文件(从不关闭)时,它无法知道它(新文件)。所以,我需要告诉当前的ruby进程闪存自己已知的当前工作目录。
我无法在谷歌得到任何答案,谢谢有人可以帮助解决这个问题。 我只是让当前进程知道并重新读取自己创建的新文件。
答案 0 :(得分: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
替换为目录路径,即使是"."
。