Ruby에서 디렉토리가 비어 있는지 확인하려면 어떻게합니까? 같은 것이 있습니다 : (. 난 그 기능이 존재하지 않는 것을 알고) Ruby에서 디렉토리가 비어 있는지 확인하십시오.
Dir.exists?("directory")
는
Ruby에서 디렉토리가 비어 있는지 확인하려면 어떻게합니까? 같은 것이 있습니다 : (. 난 그 기능이 존재하지 않는 것을 알고) Ruby에서 디렉토리가 비어 있는지 확인하십시오.
Dir.exists?("directory")
는
당신은 단지 항목의 목록을하고 (이 비어 있는지 여부를 스스로 잘, 당신을 볼 수 있습니다 . "및".. "에 대해 설명해야합니다). the docs을 참조하십시오.
(Dir.entries('your_directory') - %w{ . .. }).empty?
# or using glob, which doesn't match hidden files (like . and ..)
Dir['your_directory/*'].empty?
업데이트 : 위의 첫 번째 방법은 정규식을 사용하는 데 사용됩니다. 이제는 (분명히) 그렇지 않습니다. 아래의 주석은 대부분 이전 (정규식) 버전에 적용됩니다.
처음에는 오류가 발생했지만 두 번째 오류는 완벽하게 처리되었습니다. 감사! –
@ Mark Szymanski : 아아, 나는 괄호 안에 블록을 싸웠다. 결정된. – coreyward
첫 번째 명령은 .git와 같은 숨겨진 파일도 무시합니다. –
: 또한 단지 글로브를 사용하여 파일을 검색 할 수 있습니다
Dir.entries('directory')
=> ['.', '..', 'file.rb', '.git']
Dir.entries('directory').size <= 2 # Check if empty with no files or folders.
는 :
Dir.glob('directory/{*,.*}')
=> ['file.rb', '.git']
Dir.glob('directory/{*,.*}').empty? # Check if empty with no files.
그러나'Dir.glob ('directory/*')'는'.'로 시작하는 파일을 제외합니다 (예 :').profile' 또는'.git'. –
@ (mu가 너무 짧음) - 정확합니다. 숨겨진 파일을 포함하도록 정규 표현식을 업데이트했습니다. –
Dir.glob ('directory /{*,.*}')는 "."을 캡처합니다. 그리고 ".."그래서 비어 있습니까? 항상 false를 반환합니다. –
빈 디렉토리 만이 있어야한다 링크 (. 및 ..). OSX에서 작동합니다 :
File.stat('directory').nlink == 2
... Linux 또는 Cygwin에서는 작동하지 않지만 작동하지 않습니다. (Thanks @ DamianNowak) 팬의 대답을 적응 :
Dir.entries('directory').size == 2
이 작동합니다.
직설적이지는 않지만 * nix 계열의 시스템에서 완벽하게 작동합니다.
Dir.entries(directory_path) == ['.', '..']
다음은 내 템플릿입니다.이 파일에는 소스와 일치하는 특정 파일이 있습니다.
mydir = "/home/to/mydir"
Dir.chdir(mydir)
if Dir.entries(mydir).select(|x| x != '.' && x != '..' && x =~ /\regex.txt\z/).size > 0
do_something
elsif Dir.entries(mydir).select(|x| x != '.' && x != '..' && x =~ /\regex.txt\z/).size < 0
do_something_else
else
puts "some warning message"
end
나 아무것도 :)
루비 2.4.0로, Dir.empty?
Dir.empty?('/') # => false
내가라는 방법을보고 싶어요이 있으면 알려 "Dir.empty을?" –
@BenFlynn 5 년 후, 당신의 소원은 이루어졌습니다. (http://stackoverflow.com/a/41344613/2021397) – Janosch
@Janosch 중력파의 존재를 증명하는이 증거는 2016 년에 일어나는 가장 좋은 일입니다 –