2009-12-30 2 views
2

특정 디렉토리의 모든 파일 목록을 가져오고 싶습니다. Dir.glob는 훌륭하게 작동하지만 결과를 단지 파일 (디렉토리 제외)로 제한하는 방법은없는 것 같습니다. 이러한 목표를 달성하기 위해 더 우아한 방법은찾기. 루비의 -type f

files = Dir.glob('my_dir/**/*').reject { |f| File.directory?(f) } 

있습니까 :

는 Heres는 내가 지금 가지고 무엇인가?

답변

2
실제로 그 일에 대해 갈 수있는 매우 효율적인 방법이지만, 당신은 또한 찾기 모듈을 사용할 수 있습니다

:

require 'find' 

found = [ ] 

Find.find(base_path) do |path| 
    found << path if (File.file?(path)) 
end 
+0

+1 : 난 항상'find' 라이브러리 잊어을하지만 실제로 대부분입니다 POSIX의'find' 표현식을 루비로 이식하는 방법 (프로그래머 시간면에서 보면)은 매우 효율적입니다. –