diff -r e52341804063 -r 59faa75185ba Filename.st --- 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 ! !