Some standard directories
FileLocator home. "User's home directory (~)" FileLocator root. "File system's root (/)" FileLocator C. "Windows C:\"
Accessing the children of a directory
| home | home := FileLocator home. home pathString > '/home/cassou/' home children > an Array({home}/.bashrc {home}/Music ...)
Use message / to build a path
/
(home / 'Music') directories > an Array({home}/Music/Anouar_Brahem ...)
Use parent to go up
parent
(home / 'Music') parent pathString > '/home/cassou/'
| music | music := FileLocator home / 'Music'. (music / 'Pink_Floyd') isDirectory. > false (music / 'Pink_Floyd') ensureCreateDirectory. (music / 'Pink_Floyd') isDirectory. > true (music / 'Pink_Floyd') delete. (music / 'Pink_Floyd') isDirectory > false
(pinkFloyd / 'Meddle') allChildrenMatching: '*.ogg'.
is equivalent to
(pinkFloyd / 'Meddle') allChildren select: [ :each | each basename endsWith: 'ogg' ]
| pharo | pharo := 'pharo5.image' asFileReference. pharo isFile. > true pharo basename > 'pharo5.image' pharo extension > 'image' pharo size > 23744868 pharo parent pathString > '/home/cassou/Pharo/images/pharo5'
| hello stream | hello := 'hello.txt' asFileReference. hello exists > false stream := hello writeStream. stream nextPutAll: 'Hello World'. stream close.
| hello stream | hello := 'hello.txt' asFileReference. hello exists > true stream := hello readStream. stream next. > $H stream upToEnd. > 'ello World' stream close
| hello | hello := 'hello.txt' asFileReference.
Writing
hello writeStreamDo: [ :stream | stream nextPutAll: 'Hello World'].
Reading
hello readStreamDo: [ :stream | stream contents ] > 'Hello World'