"{ Package: 'stx:libtool2' }"
FileOperations subclass:#Copy
instanceVariableNames:''
classVariableNames:''
poolDictionaries:''
category:'Interface-Support'
!
!Copy class methodsFor:'actions'!
copyFile:aSourceFile to:aDestFile
"delete current selected files/directories
"
|instance|
instance := self new.
instance copyFile:aSourceFile to:aDestFile.
^ instance
!
copyFile:aSourceFile to:aDestFile withOverWriteWarning:overWriteWarning
"delete current selected files/directories
"
|instance|
instance := self new.
instance copyFile:aSourceFile to:aDestFile withOverWriteWarning:overWriteWarning.
^ instance
!
copyFile:aSourceFile to:aDestFile withOverWriteWarning:overWriteWarning copyFileIfSame:copy
"delete current selected files/directories
"
|instance|
instance := self new.
instance copyFile:aSourceFile to:aDestFile withOverWriteWarning:overWriteWarning copyFileIfSame:copy.
^ instance
! !
!Copy methodsFor:'actions'!
copyFile:aSourceFile to:aDestFile
"defete current selected files/directories
"
self copyFile:aSourceFile to:aDestFile withOverWriteWarning:true
!
copyFile:aSourceFile to:aDestFile withOverWriteWarning:overWriteWarning
"copy to
"
self copyFile:aSourceFile to:aDestFile withOverWriteWarning:true copyFileIfSame:false
!
copyFile:aSourceFile to:aDestFile withOverWriteWarning:overWriteWarning copyFileIfSame:copy
"copy to
"
|newFile fileString|
aDestFile exists not ifTrue:[
DialogBox warn:'cant copy to:', aDestFile asString.
result := false.
^ self
].
newFile := (aDestFile pathName asFilename) construct:(aSourceFile baseName).
(newFile exists) ifTrue:[
((newFile asString = aSourceFile asString) and:[copy]) ifTrue:[
[newFile exists] whileTrue:[
fileString := newFile baseName.
fileString := 'CopyOf', fileString.
newFile := (aDestFile pathName asFilename) construct:fileString.
].
] ifFalse:[
overWriteWarning ifTrue:[
(self fileExistDialogFor:newFile) ifFalse:[
result := false.
^ self.
]
] ifFalse:[
result := false.
^ self.
]
].
].
Error handle:[:ex|
"was not able to copy it"
WarningBox warn:'on copy file - ', ex errorString.
self errorString:('on copy file - ', ex description asString).
result := false.
] do:[
aSourceFile isDirectory ifFalse:[
aSourceFile copyTo:newFile.
] ifTrue:[
OperatingSystem recursiveCopyDirectory:(aSourceFile pathName)
to:newFile.
].
DirectoryContents flushCachedDirectory:(aSourceFile directory).
result := true.
].
! !
!Copy class methodsFor:'documentation'!
version
^ '$Header$'
! !