다른 사람들이 말했듯 Dir::foreach
이 여기에 좋은 옵션입니다. 그러나 노트는 것을 Dir::foreach
그리고 Dir::entries
항상 포함 .
하고 ..
(현재 부모 디렉토리). 일반적으로 그들에 대해 작업하고 싶지 않기 때문에 Dir::each_child
또는 Dir::children
( ma11hew28 에서 제안한대로 ) 다음과 같이 할 수 있습니다.
Dir.foreach('/path/to/dir') do |filename|
next if filename == '.' or filename == '..'
# Do work on the remaining files & directories
end
Dir::foreach
및 Dir::entries
( Dir::each_child
및 Dir::children
)에도 숨겨진 파일 및 디렉토리가 포함됩니다. 종종 이것이 당신이 원하는 것이지만, 그렇지 않은 경우에는 건너 뛰기 위해 무언가를해야합니다.
또는 Dir::glob
간단한 와일드 카드 일치를 제공하는 것을 살펴볼 수도 있습니다 .
Dir.glob('/path/to/dir/*.rb') do |rb_filename|
# Do work on files & directories ending in .rb
end
Dir.foreach
디렉토리의 내용을 반복하여 다른 일이 많이 일어나고 있습니다.