Filename.st
changeset 68 59faa75185ba
parent 54 06dbdeeed4f9
child 77 6c38ca59927f
--- a/Filename.st	Wed Mar 16 10:40:51 1994 +0100
+++ b/Filename.st	Wed Mar 30 11:38:21 1994 +0200
@@ -11,7 +11,7 @@
 "
 
 Object subclass:#Filename
-         instanceVariableNames:'name'
+         instanceVariableNames:'nameString'
          classVariableNames:''
          poolDictionaries:''
          category:'ST-80 compatibility'!
@@ -24,7 +24,7 @@
 Filenames; originally added for ST-80 compatibility, is
 taking over functionality from other classes (FileDirectory).
 
-$Header: /cvs/stx/stx/libbasic/Filename.st,v 1.6 1994-02-25 12:58:46 claus Exp $
+$Header: /cvs/stx/stx/libbasic/Filename.st,v 1.7 1994-03-30 09:32:02 claus Exp $
 '!
 
 !Filename class methodsFor:'instance creation'!
@@ -32,7 +32,7 @@
 currentDirectory
     "return a filename for the current directory"
 
-    ^ (self basicNew) name:(FileDirectory currentDirectory pathName)
+    ^ (self basicNew) setName:(FileDirectory currentDirectory pathName)
 
     "Filename currentDirectory"
 !
@@ -40,7 +40,7 @@
 named:aString
     "return a filename for a directory named aString"
 
-    ^ (self basicNew) name:aString
+    ^ (self basicNew) setName:aString
 
     "Filename named:'/tmp/fooBar'"
 ! !
@@ -62,7 +62,7 @@
      filename for an entry within this directory (i.e. for a file
      or a subdirectory in that directory)."
 
-    ^ (self class basicNew) name:(name , self class separator asString , subname)
+    ^ (self class basicNew) setName:(nameString , self class separator asString , subname)
 
     "('/tmp' asFilename construct:'foo') asString"
 ! !
@@ -72,21 +72,22 @@
 asString
     "return the receiver converted to a string"
 
-    ^ name
+    ^ nameString
 !
 
 asFilename
-    "return the receiver converted to a filename"
+    "return the receiver converted to a filename."
 
+    "Thats pretty easy here :-)"
     ^ self
 ! !
 
-!Filename methodsFor:'private accessing'!
+!Filename privateMethodsFor:'private accessing'!
 
-name:aString
+setName:aString
     "set the filename"
 
-    name := aString
+    nameString := aString
 ! !
 
 !Filename methodsFor:'queries'!
@@ -95,14 +96,38 @@
     "return the directoryName of the argument, aPath
      - thats the name of the directory where aPath is"
 
-    ^ OperatingSystem directoryNameOf:name
+    ^ OperatingSystem directoryNameOf:nameString
+
+    "/foo/bar' asFilename directoryName"
 !
 
 baseName
     "return my baseName
      - thats the file/directory name without leading parent-dirs"
 
-    ^ OperatingSystem baseNameOf:name
+    ^ OperatingSystem baseNameOf:nameString
+
+    "/foo/bar' asFilename baseName"
+!
+
+isAbsolute
+    "return true, if the receiver represents an absolute pathname
+     (in contrast to one relative to the current directory)"
+
+    ^ (nameString startsWith:self separator)
+
+    "/foo/bar' asFilename isAbsolute"
+    "'..' asFilename isAbsolute"
+    "'source/SBrowser.st' asFilename isAbsolute"
+!
+
+exists
+    "return true, if such a file exists"
+
+    ^ OperatingSystem isValidPath:nameString
+
+    "'/foo/bar' asFilename exists"
+    "'/tmp' asFilename exists"
 ! !
 
 !Filename methodsFor:'file access'!
@@ -110,15 +135,15 @@
 renameTo:newName
     "rename the file - the argument must be convertable to a String"
 
-    ^ OperatingSystem renameFile:name to:(newName asString)
+    ^ OperatingSystem renameFile:nameString to:(newName asString)
 
     "'/tmp/foo asFileName renameTo:'/tmp/bar'"
 !
 
-exists
-    "return true, if such a file exists"
+copyTo:newName
+    "copy the file - the argument must be convertable to a String"
 
-    ^ OperatingSystem isValidPath:name
+    ^ OperatingSystem copyFile:nameString to:(newName asString)
 !
 
 fileIn
@@ -130,11 +155,11 @@
 readStream
     "return a stream for reading"
 
-    ^ FileStream readonlyFileNamed:name
+    ^ FileStream readonlyFileNamed:nameString
 !
 
 writeStream
     "return a stream for writing"
 
-    ^ FileStream newFileNamed:name
+    ^ FileStream newFileNamed:nameString
 ! !