私はCSSのすべてのファイルとJavaScriptファイルディレクトリを除外するにはどうすればDir.globを実行できますか?
Dir.glob("dir/**/*.{css,js})
は私にstupidfolder.js
という名前のフォルダがあります場合、私はしたくないものを与えて取得したい場合。私はちょうどフォルダの名前を変更するだろうが、私はできません。
私はCSSのすべてのファイルとJavaScriptファイルディレクトリを除外するにはどうすればDir.globを実行できますか?
Dir.glob("dir/**/*.{css,js})
は私にstupidfolder.js
という名前のフォルダがあります場合、私はしたくないものを与えて取得したい場合。私はちょうどフォルダの名前を変更するだろうが、私はできません。
Dir.glob
で行うことはできません。これらのエントリを明示的に拒否する必要があります。
only_files = Dir.glob('*').reject do |path|
File.directory?(path)
end
あなたはそれがあなたの問題のために誇張かもしれDir.entries
Dir.entries('../directoryname').reject { |f| File.directory?(f) }
でそれを行うことができますが、rake
は、クラスFileList
を定義します。あなたはあなたが何をしようとして説明していない
require 'rake'
filelist = FileList.new("dir/**/*.{css,js}")
filelist.exclude('**/stupidfolder.js')
filelist.each do |file|
#...
end
これは、同じポイントに到達するための迂回路です。 –
私はこの答えが好きです。なぜなら、Rakefileができるはずのものだからです。代わりの答えではなく、ラウンドアラウンドの答えです。 – Pred
、あなたが特定のファイルを探してディレクトリに降りたく表示されます:あなたは、このクラスで
Dir.glob
を置き換えることができます。そしてもしそうなら、Rubyの[Find](http://ruby-doc.org/stdlib-2.2.3/libdoc/find/rdoc/Find.html)クラスは素晴らしいツールです。その起動速度は速く、階層を最初に歩く 'Dir.glob'を使うよりもスケーラビリティがあり、リストを集めて見つかったすべての配列を返します。 findのドキュメントでは、ディレクトリを整理する方法を示しています。 –はい私はすべての.cssファイルと.jsファイルへのパスを取得するためにディレクトリに降下しようとしていますが、.jsで終わるいくつかの悪いフォルダー名が存在するため、これらを除外したいと思います。私はFindについて知りませんでしたので、私はそれを確認します。 – kayla
名前が何であれ、フォルダを除外するのはマイナーなステップです。 'File.directory?( 'path/to/folder_or_file')'があなたに伝えます。ここでも、ドキュメンテーションはそれを行う方法を具体的に示しています。 –