1

たとえば、「abc」(空のディレクトリ) という私の作業ディレクトリでは、この「abc/a/a.file」のように、現在のディレクトリの下に新しいディレクトリとファイルを作成する ruby​​ スクリプトを起動します。この 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 に答える