FileDirectory.st
changeset 12351 7e0772ce0947
parent 11816 7d1d476d74cc
child 13615 6fee233c1f8a
--- a/FileDirectory.st	Mon Oct 26 16:24:22 2009 +0100
+++ b/FileDirectory.st	Mon Oct 26 16:24:34 2009 +0100
@@ -18,6 +18,13 @@
 	category:'Obsolete'
 !
 
+ArrayedCollection subclass:#DirectoryEntry
+	instanceVariableNames:'name creationTime modificationTime dirFlag fileSize'
+	classVariableNames:''
+	poolDictionaries:''
+	privateIn:FileDirectory
+!
+
 !FileDirectory class methodsFor:'documentation'!
 
 copyright
@@ -215,6 +222,22 @@
     ^ self removeFile:fileName
 !
 
+directoryEntryFor:name
+    |info|
+
+    info := self infoOf:name.
+    ^ DirectoryEntry new
+        name:name
+        creationTime:(info creationTime)
+        modificationTime:(info modificationTime)
+        dirFlag:(info isDirectory)
+        fileSize:(info isDirectory)
+
+    "
+     (FileDirectory directoryNamed:'.') entries
+    "
+!
+
 directoryExists:dir
     "Squeak/ST80 compatibility"
 
@@ -231,7 +254,7 @@
 !
 
 entries
-    ^ self contents
+    ^ self contents collect:[:nm | self directoryEntryFor:nm].
 !
 
 fileExists:dir
@@ -727,10 +750,55 @@
     ^ true
 ! !
 
+!FileDirectory::DirectoryEntry methodsFor:'accessing'!
+
+at: index
+    "compatibility interface"
+    "self halt: 'old-style access to DirectoryEntry'"
+    index = 1 ifTrue: [ ^self name ].
+    index = 2 ifTrue: [ ^self creationTime ].
+    index = 3 ifTrue: [ ^self modificationTime ].
+    index = 4 ifTrue:[ ^self isDirectory ].
+    index = 5 ifTrue:[ ^self fileSize ].
+    self error: 'invalid index specified'.
+!
+
+creationTime
+    ^ creationTime
+!
+
+dirFlag
+    ^ dirFlag
+!
+
+fileSize
+    ^ fileSize
+!
+
+modificationTime
+    ^ modificationTime
+!
+
+name
+    ^ name
+!
+
+name:nameArg creationTime:creationTimeArg modificationTime:modificationTimeArg dirFlag:dirFlagArg fileSize:fileSizeArg 
+    name := nameArg.
+    creationTime := creationTimeArg.
+    modificationTime := modificationTimeArg.
+    dirFlag := dirFlagArg.
+    fileSize := fileSizeArg.
+! !
+
 !FileDirectory class methodsFor:'documentation'!
 
 version
-    ^ '$Header: /cvs/stx/stx/libbasic/FileDirectory.st,v 1.48 2009-07-30 08:00:27 cg Exp $'
+    ^ '$Header: /cvs/stx/stx/libbasic/FileDirectory.st,v 1.49 2009-10-26 15:24:34 cg Exp $'
+!
+
+version_CVS
+    ^ '$Header: /cvs/stx/stx/libbasic/FileDirectory.st,v 1.49 2009-10-26 15:24:34 cg Exp $'
 ! !
 
 FileDirectory initialize!