创建新文件后闪存当前工作目录

时间:2012-06-30 03:33:58

标签: ruby

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

我无法在谷歌得到任何答案,谢谢有人可以帮助解决这个问题。 我只是让当前进程知道并重新读取自己创建的新文件。

1 个答案:

答案 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替换为目录路径,即使是"."