39 |instance| |
39 |instance| |
40 |
40 |
41 instance := self new. |
41 instance := self new. |
42 instance copyFile:aSourceFile to:aDestFile withOverWriteWarning:overWriteWarning copyFileIfSame:copy. |
42 instance copyFile:aSourceFile to:aDestFile withOverWriteWarning:overWriteWarning copyFileIfSame:copy. |
43 ^ instance |
43 ^ instance |
|
44 ! |
|
45 |
|
46 copyFiles:aColOfSourceFiles to:aDirectory |
|
47 "delete current selected files/directories |
|
48 " |
|
49 |
|
50 |instance| |
|
51 |
|
52 instance := self new. |
|
53 instance copyFiles:aColOfSourceFiles to:aDirectory. |
|
54 ^ instance |
|
55 ! |
|
56 |
|
57 copyFiles:aColOfSourceFiles to:aDirectory withOverWriteWarning:overWriteWarning |
|
58 "delete current selected files/directories |
|
59 " |
|
60 |
|
61 |instance| |
|
62 |
|
63 instance := self new. |
|
64 instance copyFiles:aColOfSourceFiles to:aDirectory withOverWriteWarning:overWriteWarning. |
|
65 ^ instance |
|
66 ! |
|
67 |
|
68 copyFiles:aColOfSourceFiles to:aDirectory withOverWriteWarning:overWriteWarning copyFileIfSame:copy |
|
69 "delete current selected files/directories |
|
70 " |
|
71 |
|
72 |instance| |
|
73 |
|
74 instance := self new. |
|
75 instance copyFiles:aColOfSourceFiles to:aDirectory withOverWriteWarning:overWriteWarning copyFileIfSame:copy. |
|
76 ^ instance |
|
77 ! ! |
|
78 |
|
79 !Copy methodsFor:'accessing'! |
|
80 |
|
81 colOfCopiedFiles |
|
82 "return the value of the instance variable 'colOfCopiedFiles' (automatically generated)" |
|
83 |
|
84 colOfCopiedFiles isNil ifTrue:[ |
|
85 colOfCopiedFiles := OrderedCollection new. |
|
86 ]. |
|
87 ^ colOfCopiedFiles |
44 ! ! |
88 ! ! |
45 |
89 |
46 !Copy methodsFor:'actions'! |
90 !Copy methodsFor:'actions'! |
47 |
91 |
48 copyFile:aSourceFile to:aDestFile |
92 copyFile:aSourceFile to:aDestFile |
54 |
98 |
55 copyFile:aSourceFile to:aDestFile withOverWriteWarning:overWriteWarning |
99 copyFile:aSourceFile to:aDestFile withOverWriteWarning:overWriteWarning |
56 "copy to |
100 "copy to |
57 " |
101 " |
58 |
102 |
59 self copyFile:aSourceFile to:aDestFile withOverWriteWarning:true copyFileIfSame:false |
103 self copyFile:aSourceFile to:aDestFile withOverWriteWarning:true copyFileIfSame:true |
60 ! |
104 ! |
61 |
105 |
62 copyFile:aSourceFile to:aDestFile withOverWriteWarning:overWriteWarning copyFileIfSame:copy |
106 copyFile:aSourceFile to:aDestFile withOverWriteWarning:overWriteWarning copyFileIfSame:copy |
63 "copy to |
107 "copy to |
64 " |
108 " |
65 |
109 |
66 |newFile fileString| |
110 |newFile fileString targetDirectory targetIsDirectory sourceIsDirectory suffix| |
67 |
111 |
68 aDestFile exists not ifTrue:[ |
112 sourceIsDirectory := aSourceFile isDirectory. |
69 DialogBox warn:'cant copy to:', aDestFile asString. |
113 targetIsDirectory := aDestFile isDirectory. |
|
114 targetIsDirectory ifTrue:[ |
|
115 targetDirectory := aDestFile. |
|
116 newFile := aDestFile construct:(aSourceFile baseName). |
|
117 ] ifFalse:[ |
|
118 targetDirectory := aDestFile directory. |
|
119 newFile := aDestFile. |
|
120 ]. |
|
121 "/ do not copy if destination directory doest exist. |
|
122 (targetDirectory exists not) ifTrue:[ |
|
123 DialogBox warn:'cant copy to not existing directory ', targetDirectory asString. |
70 result := false. |
124 result := false. |
71 ^ self |
125 ^ self |
72 ]. |
126 ]. |
73 newFile := (aDestFile pathName asFilename) construct:(aSourceFile baseName). |
127 (newFile exists) ifTrue:[ |
74 (newFile exists) ifTrue:[ |
|
75 ((newFile asString = aSourceFile asString) and:[copy]) ifTrue:[ |
128 ((newFile asString = aSourceFile asString) and:[copy]) ifTrue:[ |
76 [newFile exists] whileTrue:[ |
129 [newFile exists] whileTrue:[ |
77 fileString := newFile baseName. |
130 suffix := newFile suffix. |
78 fileString := 'CopyOf', fileString. |
131 fileString := newFile baseName withoutSuffix, self class copyMoveIfExistSuffixString, '.', suffix. |
79 newFile := (aDestFile pathName asFilename) construct:fileString. |
132 newFile := targetDirectory construct:fileString. |
80 ]. |
133 ]. |
81 ] ifFalse:[ |
134 ] ifFalse:[ |
82 overWriteWarning ifTrue:[ |
135 overWriteWarning ifTrue:[ |
83 (self fileExistDialogFor:newFile) ifFalse:[ |
136 (self fileExistDialogFor:newFile) ifFalse:[ |
84 result := false. |
137 result := false. |
94 "was not able to copy it" |
147 "was not able to copy it" |
95 WarningBox warn:'on copy file - ', ex errorString. |
148 WarningBox warn:'on copy file - ', ex errorString. |
96 self errorString:('on copy file - ', ex description asString). |
149 self errorString:('on copy file - ', ex description asString). |
97 result := false. |
150 result := false. |
98 ] do:[ |
151 ] do:[ |
99 aSourceFile isDirectory ifFalse:[ |
152 sourceIsDirectory ifTrue:[ |
100 aSourceFile copyTo:newFile. |
|
101 ] ifTrue:[ |
|
102 OperatingSystem recursiveCopyDirectory:(aSourceFile pathName) |
153 OperatingSystem recursiveCopyDirectory:(aSourceFile pathName) |
103 to:newFile. |
154 to:newFile. |
|
155 ] ifFalse:[ |
|
156 aSourceFile copyTo:newFile. |
104 ]. |
157 ]. |
105 DirectoryContents flushCachedDirectory:(aSourceFile directory). |
158 DirectoryContents flushCachedDirectory:(aSourceFile directory). |
106 result := true. |
159 result := true. |
107 ]. |
160 ]. |
|
161 ! |
|
162 |
|
163 copyFiles:aColOfSourceFiles to:aDirectory |
|
164 |
|
165 ^ self copyFiles:aColOfSourceFiles to:aDirectory withOverWriteWarning:true. |
|
166 ! |
|
167 |
|
168 copyFiles:aColOfSourceFiles to:aDirectory withOverWriteWarning:overWriteWarning |
|
169 |
|
170 ^ self copyFiles:aColOfSourceFiles to:aDirectory withOverWriteWarning:overWriteWarning copyFileIfSame:true. |
|
171 ! |
|
172 |
|
173 copyFiles:aColOfSourceFiles to:aDirectory withOverWriteWarning:overWriteWarning copyFileIfSame:copy |
|
174 |
|
175 |
|
176 |newFile suffix fileString sourceIsDirectory askResult| |
|
177 |
|
178 (aDirectory exists not) ifTrue:[ |
|
179 DialogBox warn:'cant copy to not existing directory ', aDirectory asString. |
|
180 result := false. |
|
181 ^ self |
|
182 ]. |
|
183 (aDirectory isDirectory not) ifTrue:[ |
|
184 DialogBox warn:'destination ', aDirectory asString, ' is not a directory'. |
|
185 result := false. |
|
186 ^ self |
|
187 ]. |
|
188 aColOfSourceFiles do:[: filename | |
|
189 newFile := aDirectory construct:(filename baseName). |
|
190 sourceIsDirectory := filename isDirectory. |
|
191 (newFile exists) ifTrue:[ |
|
192 askResult := true. |
|
193 ((newFile asString = filename asString) and:[copy]) ifTrue:[ |
|
194 [newFile exists] whileTrue:[ |
|
195 suffix := newFile suffix. |
|
196 fileString := newFile baseName withoutSuffix, self class copyMoveIfExistSuffixString, '.', suffix. |
|
197 newFile := aDirectory construct:fileString. |
|
198 ]. |
|
199 ] ifFalse:[ |
|
200 overWriteWarning ifTrue:[ |
|
201 askResult := (self fileExistDialogFor:newFile withCancel:true). |
|
202 askResult isNil ifTrue:[ |
|
203 result := false. |
|
204 ^ self. |
|
205 ] |
|
206 ] |
|
207 ]. |
|
208 ]. |
|
209 askResult ifTrue:[ |
|
210 Error handle:[:ex| |
|
211 "was not able to copy it" |
|
212 result := false. |
|
213 self errorString:('on copy file - ', ex description asString). |
|
214 ( Dialog |
|
215 confirm:('error on copy file - ', ex description asString) |
|
216 title:'Copy' |
|
217 yesLabel:'Continue' |
|
218 noLabel:'Abort') ifFalse:[ |
|
219 ^ self. |
|
220 ]. |
|
221 ] do:[ |
|
222 sourceIsDirectory ifTrue:[ |
|
223 OperatingSystem recursiveCopyDirectory:(filename asString) |
|
224 to:(newFile asString). |
|
225 ] ifFalse:[ |
|
226 filename copyTo:newFile. |
|
227 ]. |
|
228 ]. |
|
229 self colOfCopiedFiles add:filename |
|
230 ] |
|
231 ]. |
|
232 DirectoryContents flushCachedDirectory:aDirectory. |
|
233 result := true. |
108 ! ! |
234 ! ! |
109 |
235 |
110 !Copy class methodsFor:'documentation'! |
236 !Copy class methodsFor:'documentation'! |
111 |
237 |
112 version |
238 version |