Filename.st
author claus
Fri, 25 Feb 1994 13:58:55 +0100
changeset 54 06dbdeeed4f9
parent 38 454b1b94a48e
child 68 59faa75185ba
permissions -rw-r--r--
*** empty log message ***
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
1
a27a279701f8 Initial revision
claus
parents:
diff changeset
     1
"
5
67342904af11 *** empty log message ***
claus
parents: 3
diff changeset
     2
 COPYRIGHT (c) 1992 by Claus Gittinger
1
a27a279701f8 Initial revision
claus
parents:
diff changeset
     3
              All Rights Reserved
a27a279701f8 Initial revision
claus
parents:
diff changeset
     4
a27a279701f8 Initial revision
claus
parents:
diff changeset
     5
 This software is furnished under a license and may be used
a27a279701f8 Initial revision
claus
parents:
diff changeset
     6
 only in accordance with the terms of that license and with the
a27a279701f8 Initial revision
claus
parents:
diff changeset
     7
 inclusion of the above copyright notice.   This software may not
a27a279701f8 Initial revision
claus
parents:
diff changeset
     8
 be provided or otherwise made available to, or used by, any
a27a279701f8 Initial revision
claus
parents:
diff changeset
     9
 other person.  No title to or ownership of the software is
a27a279701f8 Initial revision
claus
parents:
diff changeset
    10
 hereby transferred.
a27a279701f8 Initial revision
claus
parents:
diff changeset
    11
"
a27a279701f8 Initial revision
claus
parents:
diff changeset
    12
a27a279701f8 Initial revision
claus
parents:
diff changeset
    13
Object subclass:#Filename
a27a279701f8 Initial revision
claus
parents:
diff changeset
    14
         instanceVariableNames:'name'
a27a279701f8 Initial revision
claus
parents:
diff changeset
    15
         classVariableNames:''
a27a279701f8 Initial revision
claus
parents:
diff changeset
    16
         poolDictionaries:''
a27a279701f8 Initial revision
claus
parents:
diff changeset
    17
         category:'ST-80 compatibility'!
a27a279701f8 Initial revision
claus
parents:
diff changeset
    18
a27a279701f8 Initial revision
claus
parents:
diff changeset
    19
Filename comment:'
a27a279701f8 Initial revision
claus
parents:
diff changeset
    20
5
67342904af11 *** empty log message ***
claus
parents: 3
diff changeset
    21
COPYRIGHT (c) 1992 by Claus Gittinger
1
a27a279701f8 Initial revision
claus
parents:
diff changeset
    22
             All Rights Reserved
a27a279701f8 Initial revision
claus
parents:
diff changeset
    23
2
claus
parents: 1
diff changeset
    24
Filenames; originally added for ST-80 compatibility, is
claus
parents: 1
diff changeset
    25
taking over functionality from other classes (FileDirectory).
1
a27a279701f8 Initial revision
claus
parents:
diff changeset
    26
54
06dbdeeed4f9 *** empty log message ***
claus
parents: 38
diff changeset
    27
$Header: /cvs/stx/stx/libbasic/Filename.st,v 1.6 1994-02-25 12:58:46 claus Exp $
1
a27a279701f8 Initial revision
claus
parents:
diff changeset
    28
'!
a27a279701f8 Initial revision
claus
parents:
diff changeset
    29
a27a279701f8 Initial revision
claus
parents:
diff changeset
    30
!Filename class methodsFor:'instance creation'!
a27a279701f8 Initial revision
claus
parents:
diff changeset
    31
2
claus
parents: 1
diff changeset
    32
currentDirectory
38
454b1b94a48e *** empty log message ***
claus
parents: 5
diff changeset
    33
    "return a filename for the current directory"
454b1b94a48e *** empty log message ***
claus
parents: 5
diff changeset
    34
2
claus
parents: 1
diff changeset
    35
    ^ (self basicNew) name:(FileDirectory currentDirectory pathName)
38
454b1b94a48e *** empty log message ***
claus
parents: 5
diff changeset
    36
454b1b94a48e *** empty log message ***
claus
parents: 5
diff changeset
    37
    "Filename currentDirectory"
2
claus
parents: 1
diff changeset
    38
!
claus
parents: 1
diff changeset
    39
1
a27a279701f8 Initial revision
claus
parents:
diff changeset
    40
named:aString
38
454b1b94a48e *** empty log message ***
claus
parents: 5
diff changeset
    41
    "return a filename for a directory named aString"
454b1b94a48e *** empty log message ***
claus
parents: 5
diff changeset
    42
1
a27a279701f8 Initial revision
claus
parents:
diff changeset
    43
    ^ (self basicNew) name:aString
38
454b1b94a48e *** empty log message ***
claus
parents: 5
diff changeset
    44
454b1b94a48e *** empty log message ***
claus
parents: 5
diff changeset
    45
    "Filename named:'/tmp/fooBar'"
1
a27a279701f8 Initial revision
claus
parents:
diff changeset
    46
! !
a27a279701f8 Initial revision
claus
parents:
diff changeset
    47
2
claus
parents: 1
diff changeset
    48
!Filename class methodsFor:'queries'!
claus
parents: 1
diff changeset
    49
claus
parents: 1
diff changeset
    50
separator
claus
parents: 1
diff changeset
    51
    "return the file/directory separator."
claus
parents: 1
diff changeset
    52
claus
parents: 1
diff changeset
    53
     ^ OperatingSystem fileSeparator
38
454b1b94a48e *** empty log message ***
claus
parents: 5
diff changeset
    54
454b1b94a48e *** empty log message ***
claus
parents: 5
diff changeset
    55
     "Filename separator"
2
claus
parents: 1
diff changeset
    56
! !
claus
parents: 1
diff changeset
    57
claus
parents: 1
diff changeset
    58
!Filename methodsFor:'instance creation'!
claus
parents: 1
diff changeset
    59
claus
parents: 1
diff changeset
    60
construct:subname
38
454b1b94a48e *** empty log message ***
claus
parents: 5
diff changeset
    61
    "taking the receiver as a directory name, construct a new
454b1b94a48e *** empty log message ***
claus
parents: 5
diff changeset
    62
     filename for an entry within this directory (i.e. for a file
454b1b94a48e *** empty log message ***
claus
parents: 5
diff changeset
    63
     or a subdirectory in that directory)."
454b1b94a48e *** empty log message ***
claus
parents: 5
diff changeset
    64
454b1b94a48e *** empty log message ***
claus
parents: 5
diff changeset
    65
    ^ (self class basicNew) name:(name , self class separator asString , subname)
454b1b94a48e *** empty log message ***
claus
parents: 5
diff changeset
    66
454b1b94a48e *** empty log message ***
claus
parents: 5
diff changeset
    67
    "('/tmp' asFilename construct:'foo') asString"
2
claus
parents: 1
diff changeset
    68
! !
claus
parents: 1
diff changeset
    69
1
a27a279701f8 Initial revision
claus
parents:
diff changeset
    70
!Filename methodsFor:'converting'!
a27a279701f8 Initial revision
claus
parents:
diff changeset
    71
a27a279701f8 Initial revision
claus
parents:
diff changeset
    72
asString
38
454b1b94a48e *** empty log message ***
claus
parents: 5
diff changeset
    73
    "return the receiver converted to a string"
454b1b94a48e *** empty log message ***
claus
parents: 5
diff changeset
    74
1
a27a279701f8 Initial revision
claus
parents:
diff changeset
    75
    ^ name
a27a279701f8 Initial revision
claus
parents:
diff changeset
    76
!
a27a279701f8 Initial revision
claus
parents:
diff changeset
    77
a27a279701f8 Initial revision
claus
parents:
diff changeset
    78
asFilename
38
454b1b94a48e *** empty log message ***
claus
parents: 5
diff changeset
    79
    "return the receiver converted to a filename"
454b1b94a48e *** empty log message ***
claus
parents: 5
diff changeset
    80
1
a27a279701f8 Initial revision
claus
parents:
diff changeset
    81
    ^ self
a27a279701f8 Initial revision
claus
parents:
diff changeset
    82
! !
a27a279701f8 Initial revision
claus
parents:
diff changeset
    83
a27a279701f8 Initial revision
claus
parents:
diff changeset
    84
!Filename methodsFor:'private accessing'!
a27a279701f8 Initial revision
claus
parents:
diff changeset
    85
a27a279701f8 Initial revision
claus
parents:
diff changeset
    86
name:aString
38
454b1b94a48e *** empty log message ***
claus
parents: 5
diff changeset
    87
    "set the filename"
454b1b94a48e *** empty log message ***
claus
parents: 5
diff changeset
    88
1
a27a279701f8 Initial revision
claus
parents:
diff changeset
    89
    name := aString
a27a279701f8 Initial revision
claus
parents:
diff changeset
    90
! !
a27a279701f8 Initial revision
claus
parents:
diff changeset
    91
2
claus
parents: 1
diff changeset
    92
!Filename methodsFor:'queries'!
claus
parents: 1
diff changeset
    93
claus
parents: 1
diff changeset
    94
directoryName
claus
parents: 1
diff changeset
    95
    "return the directoryName of the argument, aPath
claus
parents: 1
diff changeset
    96
     - thats the name of the directory where aPath is"
claus
parents: 1
diff changeset
    97
claus
parents: 1
diff changeset
    98
    ^ OperatingSystem directoryNameOf:name
claus
parents: 1
diff changeset
    99
!
claus
parents: 1
diff changeset
   100
claus
parents: 1
diff changeset
   101
baseName
claus
parents: 1
diff changeset
   102
    "return my baseName
claus
parents: 1
diff changeset
   103
     - thats the file/directory name without leading parent-dirs"
claus
parents: 1
diff changeset
   104
claus
parents: 1
diff changeset
   105
    ^ OperatingSystem baseNameOf:name
claus
parents: 1
diff changeset
   106
! !
claus
parents: 1
diff changeset
   107
1
a27a279701f8 Initial revision
claus
parents:
diff changeset
   108
!Filename methodsFor:'file access'!
a27a279701f8 Initial revision
claus
parents:
diff changeset
   109
2
claus
parents: 1
diff changeset
   110
renameTo:newName
claus
parents: 1
diff changeset
   111
    "rename the file - the argument must be convertable to a String"
claus
parents: 1
diff changeset
   112
54
06dbdeeed4f9 *** empty log message ***
claus
parents: 38
diff changeset
   113
    ^ OperatingSystem renameFile:name to:(newName asString)
2
claus
parents: 1
diff changeset
   114
claus
parents: 1
diff changeset
   115
    "'/tmp/foo asFileName renameTo:'/tmp/bar'"
claus
parents: 1
diff changeset
   116
!
claus
parents: 1
diff changeset
   117
1
a27a279701f8 Initial revision
claus
parents:
diff changeset
   118
exists
a27a279701f8 Initial revision
claus
parents:
diff changeset
   119
    "return true, if such a file exists"
a27a279701f8 Initial revision
claus
parents:
diff changeset
   120
a27a279701f8 Initial revision
claus
parents:
diff changeset
   121
    ^ OperatingSystem isValidPath:name
a27a279701f8 Initial revision
claus
parents:
diff changeset
   122
!
a27a279701f8 Initial revision
claus
parents:
diff changeset
   123
a27a279701f8 Initial revision
claus
parents:
diff changeset
   124
fileIn
2
claus
parents: 1
diff changeset
   125
    "load smalltalk code from the file"
claus
parents: 1
diff changeset
   126
claus
parents: 1
diff changeset
   127
    ^ self readStream fileIn
1
a27a279701f8 Initial revision
claus
parents:
diff changeset
   128
!
a27a279701f8 Initial revision
claus
parents:
diff changeset
   129
a27a279701f8 Initial revision
claus
parents:
diff changeset
   130
readStream
2
claus
parents: 1
diff changeset
   131
    "return a stream for reading"
claus
parents: 1
diff changeset
   132
1
a27a279701f8 Initial revision
claus
parents:
diff changeset
   133
    ^ FileStream readonlyFileNamed:name
a27a279701f8 Initial revision
claus
parents:
diff changeset
   134
!
a27a279701f8 Initial revision
claus
parents:
diff changeset
   135
a27a279701f8 Initial revision
claus
parents:
diff changeset
   136
writeStream
2
claus
parents: 1
diff changeset
   137
    "return a stream for writing"
claus
parents: 1
diff changeset
   138
1
a27a279701f8 Initial revision
claus
parents:
diff changeset
   139
    ^ FileStream newFileNamed:name
a27a279701f8 Initial revision
claus
parents:
diff changeset
   140
! !