FileDirectory.st
branchjv
changeset 17734 406b1590afe8
parent 17728 bbc5fa73dfab
child 17735 6a5bc05f696a
--- a/FileDirectory.st	Mon Oct 26 21:51:17 2009 +0000
+++ b/FileDirectory.st	Thu Nov 05 14:41:30 2009 +0000
@@ -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,56 @@
     ^ 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
-    ^ '$Id: FileDirectory.st 10467 2009-08-19 16:14:36Z vranyj1 $'
+    ^ '$Id: FileDirectory.st 10477 2009-11-05 14:41:30Z vranyj1 $'
+!
+
+version_CVS
+    ^ '$Id: FileDirectory.st 10477 2009-11-05 14:41:30Z vranyj1 $'
 ! !
 
 FileDirectory initialize!
+