2009-04-28 9 views
18

私はいくつかの例外を除き、すべてのサブディレクトリのindex.htmlにindex.tplをコピーする単純なrubyスクリプトを作成しようとしています。しかし、私はサブディレクトリのリストを取得しようとすると、うんざりしているruby​​のすべての直下のサブディレクトリを取得する

+2

あなたはPythonについて同じ質問をしました。宿題がなければ同じことをするために2つの言語で2つのスクリプトを書くのはなぜですか? –

+1

私は2つの異なるコミュニティによる回答を比較したいので。 –

+0

これはあまりにも宿題のようですね! haha –

答えて

15

Dir.glob("**/")は、現在のディレクトリの下のすべてのパスの配列を返します。そこから、あなたがリストをフィルタリングして、すべての即時サブディレクトリ(あなたがどこにいるか、以下のただ一つのレベルを)見つけることを意味している場合File.copy(from, to)

10

でファイルをコピーすることができ、これを試してみてください。

Dir.chdir("/some/path/you/want/to/check/below") 
subdir_list=Dir["*"].reject{|o| not File.directory?(o)} 

すなわち:ディレクトリをどこかに変更し、そこに見つかったファイルの配列を構築し、ディレクトリではない配列要素を拒否し、結果として得られるカーリングしたarrrayを返します。

56

の即時サブディレクトリだけを望むと仮定した場合、Dir['*/'](Micheal SepcotとGlenraの回答を組み合わせたもの)を使用できます。

+9

whats to "assume"?それは彼が質問で尋ねたものです! +1 –

+0

この答えは、すべてのサブディレクトリが1レベルしか深くならないようにします。 Michael Sepcotの答えは、現在のサブディレクトリすべてを取得します。 – Aaron

+0

@AndrewBullock:この回答が追加されたとき、OPはすでにその仮定をしていない回答を受け入れていました。 –

関連する問題