Copy.st
author Claus Gittinger <cg@exept.de>
Wed, 04 Sep 2002 12:29:17 +0200
changeset 1587 91a7b38eb142
parent 1585 91ec771207a2
child 1588 6dde5ad32643
permissions -rw-r--r--
slight code beautification;

"{ 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$'
! !