A new version of Files was added to project The Inbox: http://source.squeak.org/inbox/Files-cmm.125.mcz
==================== Summary ====================
Name: Files-cmm.125 Author: cmm Time: 27 June 2013, 7:24:33.37 pm UUID: 0b00b2c4-3430-442b-a924-72040ff43d73 Ancestors: Files-fbs.124
FileDirectory>>statsForDirectoryTree: is a prime example of FileDirectory living up to its poor reputation. It does one useless thing, and does it inefficiently. It has no senders, deservedly. Tree-walking operations like gathering stats can be written in apps more generally using directoryTreeDo:.
=============== Diff against Files-fbs.124 ===============
Item was changed: + ----- Method: FileDirectory>>directoryTreeDo:entries: (in category 'private') ----- - ----- Method: FileDirectory>>directoryTreeDo:entries: (in category 'enumeration') ----- directoryTreeDo: oneArgBlock entries: entriesCollection "Value oneArgBlock with the path (an OrderedCollection of FileDirectory's) to each DirectoryEntry and the DirectoryEntry itself." self entries do: [ : each | entriesCollection add: each. oneArgBlock value: entriesCollection. each isDirectory ifTrue: [ | subdir | subdir := each asFileDirectory. subdir directoryTreeDo: oneArgBlock entries: entriesCollection ]. entriesCollection removeLast ]!
Item was removed: - ----- Method: FileDirectory>>statsForDirectoryTree: (in category 'enumeration') ----- - statsForDirectoryTree: rootedPathName - "Return the size statistics for the entire directory tree starting at the given root. The result is a three element array of the form: (<number of folders><number of files><total bytes in all files>). This method also serves as an example of how recursively enumerate a directory tree." - "FileDirectory default statsForDirectoryTree: '\smalltalk'" - - | dirs files bytes todo entries p | - dirs := files := bytes := 0. - todo := OrderedCollection with: rootedPathName. - [todo isEmpty] whileFalse: [ - p := todo removeFirst. - entries := self directoryContentsFor: p. - entries do: [:entry | - entry isDirectory - ifTrue: [ - todo addLast: p , self pathNameDelimiter asString , entry name. - dirs := dirs + 1] - ifFalse: [ - files := files + 1. - bytes := bytes + entry fileSize]]]. - ^ Array with: dirs with: files with: bytes - !
squeak-dev@lists.squeakfoundation.org