# HG changeset patch # User penk # Date 1031153194 -7200 # Node ID 89e229528104dd58693be5d67f8ce80bbb89af9f # Parent e3281d70e25c24e4fa6e2276b0ccf0b04a40b3dd *** empty log message *** diff -r e3281d70e25c -r 89e229528104 Copy.st --- a/Copy.st Wed Sep 04 17:20:15 2002 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,240 +0,0 @@ -"{ Package: 'stx:libtool2' }" - -FileOperations subclass:#Copy - instanceVariableNames:'colOfCopiedFiles' - 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 -! - -copyFiles:aColOfSourceFiles to:aDirectory - "delete current selected files/directories - " - - |instance| - - instance := self new. - instance copyFiles:aColOfSourceFiles to:aDirectory. - ^ instance -! - -copyFiles:aColOfSourceFiles to:aDirectory withOverWriteWarning:overWriteWarning - "delete current selected files/directories - " - - |instance| - - instance := self new. - instance copyFiles:aColOfSourceFiles to:aDirectory withOverWriteWarning:overWriteWarning. - ^ instance -! - -copyFiles:aColOfSourceFiles to:aDirectory withOverWriteWarning:overWriteWarning copyFileIfSame:copy - "delete current selected files/directories - " - - |instance| - - instance := self new. - instance copyFiles:aColOfSourceFiles to:aDirectory withOverWriteWarning:overWriteWarning copyFileIfSame:copy. - ^ instance -! ! - -!Copy methodsFor:'accessing'! - -colOfCopiedFiles - "return the value of the instance variable 'colOfCopiedFiles' (automatically generated)" - - colOfCopiedFiles isNil ifTrue:[ - colOfCopiedFiles := OrderedCollection new. - ]. - ^ colOfCopiedFiles -! ! - -!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:true -! - -copyFile:aSourceFile to:aDestFile withOverWriteWarning:overWriteWarning copyFileIfSame:copy - "copy to - " - - |newFile fileString targetDirectory targetIsDirectory sourceIsDirectory suffix| - - sourceIsDirectory := aSourceFile isDirectory. - targetIsDirectory := aDestFile isDirectory. - targetIsDirectory ifTrue:[ - targetDirectory := aDestFile. - newFile := aDestFile construct:(aSourceFile baseName). - ] ifFalse:[ - targetDirectory := aDestFile directory. - newFile := aDestFile. - ]. - "/ do not copy if destination directory doest exist. - (targetDirectory exists not) ifTrue:[ - DialogBox warn:'cant copy to not existing directory ', targetDirectory asString. - result := false. - ^ self - ]. - (newFile exists) ifTrue:[ - ((newFile asString = aSourceFile asString) and:[copy]) ifTrue:[ - [newFile exists] whileTrue:[ - suffix := newFile suffix. - fileString := newFile baseName withoutSuffix, self class copyMoveIfExistSuffixString, '.', suffix. - newFile := targetDirectory 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:[ - sourceIsDirectory ifTrue:[ - OperatingSystem recursiveCopyDirectory:(aSourceFile pathName) - to:newFile. - ] ifFalse:[ - aSourceFile copyTo:newFile. - ]. - DirectoryContents flushCachedDirectory:(aSourceFile directory). - result := true. - ]. -! - -copyFiles:aColOfSourceFiles to:aDirectory - - ^ self copyFiles:aColOfSourceFiles to:aDirectory withOverWriteWarning:true. -! - -copyFiles:aColOfSourceFiles to:aDirectory withOverWriteWarning:overWriteWarning - - ^ self copyFiles:aColOfSourceFiles to:aDirectory withOverWriteWarning:overWriteWarning copyFileIfSame:true. -! - -copyFiles:aColOfSourceFiles to:aDirectory withOverWriteWarning:overWriteWarning copyFileIfSame:copy - - - |newFile suffix fileString sourceIsDirectory askResult| - - (aDirectory exists not) ifTrue:[ - DialogBox warn:'cant copy to not existing directory ', aDirectory asString. - result := false. - ^ self - ]. - (aDirectory isDirectory not) ifTrue:[ - DialogBox warn:'destination ', aDirectory asString, ' is not a directory'. - result := false. - ^ self - ]. - aColOfSourceFiles do:[: filename | - newFile := aDirectory construct:(filename baseName). - sourceIsDirectory := filename isDirectory. - (newFile exists) ifTrue:[ - askResult := true. - ((newFile asString = filename asString) and:[copy]) ifTrue:[ - [newFile exists] whileTrue:[ - suffix := newFile suffix. - fileString := newFile baseName withoutSuffix, self class copyMoveIfExistSuffixString, '.', suffix. - newFile := aDirectory construct:fileString. - ]. - ] ifFalse:[ - overWriteWarning ifTrue:[ - askResult := (self fileExistDialogFor:newFile withCancel:true). - askResult isNil ifTrue:[ - result := false. - ^ self. - ] - ] - ]. - ]. - askResult ifTrue:[ - Error handle:[:ex| - "was not able to copy it" - result := false. - self errorString:('on copy file - ', ex description asString). - ( Dialog - confirm:('error on copy file - ', ex description asString) - title:'Copy' - yesLabel:'Continue' - noLabel:'Abort') ifFalse:[ - ^ self. - ]. - ] do:[ - sourceIsDirectory ifTrue:[ - OperatingSystem recursiveCopyDirectory:(filename asString) - to:(newFile asString). - ] ifFalse:[ - filename copyTo:newFile. - ]. - ]. - self colOfCopiedFiles add:filename - ] - ]. - DirectoryContents flushCachedDirectory:aDirectory. - result := true. -! ! - -!Copy class methodsFor:'documentation'! - -version - ^ '$Header$' -! !