"{ Package: 'stx:libtool2' }"
FileOperations subclass:#Delete
instanceVariableNames:'fileName errorString'
classVariableNames:''
poolDictionaries:''
category:'Interface-Support'
!
!Delete class methodsFor:'actions'!
deleteFile:aFileOrDirectory
"delete current selected files/directories
"
|instance|
instance := self new.
instance deleteFile:aFileOrDirectory.
^ instance
!
deleteFiles:aColOfFiles
"delete current selected files/directories
"
|instance|
instance := self new.
instance deleteFiles:aColOfFiles.
^ instance
! !
!Delete methodsFor:'actions'!
deleteFile:aFileOrDirectory
| file isDirectory |
aFileOrDirectory notNil ifTrue:[
file := aFileOrDirectory asFilename.
file exists ifTrue:[
isDirectory := file isDirectory.
Error handle:[:ex|
"was not able to remove it"
Smalltalk beep.
self errorString:((ex description, '\', ex signal notifierString) withCRs).
result := false.
] do:[
isDirectory ifTrue:[file recursiveRemove] ifFalse:[file remove].
"/ flush parent directory or directory
DirectoryContents flushCachedDirectory:(file directory).
]
]
].
result := true.
!
deleteFiles:colOfFiles
"delete current selected files/directories
"
| retVal ask size|
ask := true.
size := colOfFiles size.
colOfFiles do:[: filename |
ask ifTrue:[
size = 1 ifTrue:[
retVal := Dialog
confirmWithCancel:('really delete ', filename asString , ' ?')
labels:#('Yes' 'No' 'Cancel')
values:#(#yes #no #cancel)
default:1.
] ifFalse:[
retVal := Dialog
confirmWithCancel:('really delete ', filename asString , ' ?')
labels:#('Yes' 'No' 'Yes to All' 'Cancel')
values:#(#yes #no #yesToAll #cancel)
default:1.
]
].
retVal == #cancel ifTrue:[
^ self.
].
retVal == #yes ifTrue:[
self deleteFile:filename.
].
retVal == #yesToAll ifTrue:[
self deleteFile:filename.
ask := false.
retVal := #yes.
].
].
! !
!Delete class methodsFor:'documentation'!
version
^ '$Header$'
! !