Copy.st
changeset 1585 91ec771207a2
child 1588 6dde5ad32643
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Copy.st	Tue Sep 03 17:23:22 2002 +0200
@@ -0,0 +1,114 @@
+"{ 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$'
+! !