如何在Ruby中檢查目錄是否爲空?有什麼樣:(我知道這功能不存在)檢查Ruby中的目錄是否爲空
回答
你可以得到的條目列表,看看自己是否是空的(當然,你必須說明「。」和「..」)。見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/*')'將省略以'.'開頭的文件,例如'。配置文件「或」.git「。 –
@(畝太短) - 你是對的。我更新了我的正則表達式以包含隱藏的文件。 –
Dir.glob('directory /{*,.*}')捕獲「。」和「..」這麼空?將始終返回false。 –
一個空的目錄應該只有兩個鏈接(。和..)。在OSX上,它的工作原理如下:
File.stat('directory').nlink == 2
...但在Linux或Cygwin上不起作用。 (謝謝@DamianNowak)調整潘的回答:
Dir.entries('directory').size == 2
應該工作。
不直接,但在* nix類型的系統中完美。
Dir.entries(directory_path) == ['.', '..']
這是我的這個模板.FYI,我正在尋找源文件內的某種匹配。
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
讓我知道如果有什麼:)
隨着Ruby 2.4.0,有Dir.empty?
Dir.empty?('/') # => false
- 1. 檢查目錄是否爲空
- 2. Ruby,MySQL2:檢查結果是否爲空
- 3. NSIS檢查是否存在空目錄
- 4. 如何檢查Java中的目錄是否爲空
- 5. 如何檢查Linux內核中的目錄是否爲空?
- 6. 如何檢查perl中的目錄是否爲空?
- 7. Ruby DBI - 如何檢查記錄集是否爲空
- 8. 在VC++中,如何檢查一個目錄是否爲空?
- 9. 使用Linux上的C檢查目錄是否爲空
- 10. 檢查是否在HDFS目錄爲空或不
- 11. 如何使用PHP來檢查一個目錄是否爲空?
- 12. 如何檢查目錄是否是Python中的臨時目錄
- 13. 檢查dataGridView是否爲空
- 14. 檢查JValue是否爲空
- 15. 檢查imageView是否爲空
- 16. 檢查tabControl1是否爲空?
- 17. 檢查CSV是否爲空
- 18. 檢查double是否爲空
- 19. 檢查列是否爲空
- 20. 檢查ALAssetsLibrary是否爲空
- 21. 檢查ArrayCollection是否爲空
- 22. laravel檢查是否爲空
- 23. 檢查textarea是否爲空
- 24. 檢查NumericUpDown是否爲空
- 25. 檢查ImageSource是否爲空
- 26. 檢查是否爲空JasperReports
- 27. 檢查是否爲空JFormattedTextField
- 28. 檢查editText是否爲空
- 29. 檢查JTextField是否爲空
- 30. 檢查是否爲空VB.NET
我想看到一個名爲方法 「Dir.empty?」 –
@BenFlynn 5年之後,你的願望[實現了](http://stackoverflow.com/a/41344613/2021397) – Janosch
@Janosch無論是這個還是存在引力波的證據都是2016年最好的事情發生 –