"{ Package: 'stx:goodies/monticello' }"
"{ NameSpace: Smalltalk }"
MCFileTreeFileUtils subclass:#MCFileTreeFileSystemUtils
instanceVariableNames:''
classVariableNames:''
poolDictionaries:''
category:'SCM-Monticello-FileTree-FileSystem-Utilities'
!
!MCFileTreeFileSystemUtils class methodsFor:'initialization'!
initialize
"self initialize"
self install
! !
!MCFileTreeFileSystemUtils class methodsFor:'utilities'!
default
^ DiskStore activeClass createDefault defaultWorkingDirectory asFileReference
!
deleteAll: aDirectory
^ aDirectory deleteAll
!
directoryExists: aDirectory
^ aDirectory isDirectory
!
directoryFromEntry: directoryEntry
^ directoryEntry asFileReference
!
directoryFromPath: directoryPath
^ (AbsolutePath from: directoryPath delimiter: self pathNameDelimiter) asFileReference
!
directoryFromPath: directoryPath relativeTo: aDirectory
^ aDirectory resolveString: directoryPath
!
directoryName: aDirectory
^ aDirectory basename
!
directoryPathString: aDirectory
^ aDirectory pathString
!
ensureDirectoryExists: aDirectory
aDirectory ensureCreateDirectory
!
ensureFilePathExists: fileNameOrPath relativeTo: aDirectory
(aDirectory resolveString: fileNameOrPath) parent ensureCreateDirectory
!
filePathExists: filePath relativeTo: aDirectory
^ (aDirectory resolveString: filePath) isFile
!
parentDirectoryOf: aDirectory
^ aDirectory parent
!
pathNameDelimiter
^ DiskStore activeClass delimiter
!
readStreamFor: filePath in: aDirectory do: aBlock
"temporary hack for Pharo-1.4"
^ (aDirectory resolveString: filePath)
readStreamDo: [ :fileStream |
| stream |
stream := ReadStream on: fileStream contents asString.
stream reset.
aBlock value: stream ]
!
resolvePath: path in: aDirectory
^ aDirectory resolveString: path
!
writeStreamFor: filePath in: aDirectory do: aBlock
(aDirectory resolveString: filePath) writeStreamDo: aBlock
! !
!MCFileTreeFileSystemUtils class methodsFor:'documentation'!
version_CVS
^ '$Header$'
! !
MCFileTreeFileSystemUtils initialize!