mirror of
https://github.com/ruby/ruby.git
synced 2022-11-09 12:17:21 -05:00
Dir.children is available since Feature #11302. FileUtils uses
Dir.each on an internal method encapsulated on a private class `Entry_#entry`, having no '.' neither '..' entries would make now superfluous a chained reject filtering. This change can improve the performance of these FileUtils methods when the provided path covers thousands of files or directories: - chmod_R - chown_R - remove_entry - remove_entry_secure - rm_r - remove_dir - copy_entry Related: Feature #13896 https://bugs.ruby-lang.org/issues/13896 [Feature #14109][Fix GH-1754] Co-Authored-By: esparta <esparta@gmail.com> git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@65610 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
parent
8c56aa51b5
commit
37c08fad04
1 changed files with 1 additions and 2 deletions
|
@ -1274,8 +1274,7 @@ module FileUtils
|
|||
def entries
|
||||
opts = {}
|
||||
opts[:encoding] = ::Encoding::UTF_8 if fu_windows?
|
||||
Dir.entries(path(), opts)\
|
||||
.reject {|n| n == '.' or n == '..' }\
|
||||
Dir.children(path, opts)\
|
||||
.map {|n| Entry_.new(prefix(), join(rel(), n.untaint)) }
|
||||
end
|
||||
|
||||
|
|
Loading…
Reference in a new issue