--- 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
! !