Create.st
changeset 1585 91ec771207a2
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Create.st	Tue Sep 03 17:23:22 2002 +0200
@@ -0,0 +1,86 @@
+"{ Package: 'stx:libtool2' }"
+
+FileOperations subclass:#Create
+	instanceVariableNames:''
+	classVariableNames:''
+	poolDictionaries:''
+	category:'Interface-Support'
+!
+
+
+!Create class methodsFor:'actions'!
+
+createDirectory:newName
+
+    |instance|
+
+    instance := self new.
+    instance createDirectory:newName.
+    ^ instance
+!
+
+createFile:newName
+
+    |instance|
+
+    instance := self new.
+    instance createFile:newName.
+    ^ instance
+! !
+
+!Create methodsFor:'actions'!
+
+createDirectory:newName
+    |msg|
+
+    newName exists ifTrue:[
+        DialogBox warn:(newName, ' already exists.').
+        result := false.
+        ^ self
+    ].
+
+    newName makeDirectory ifFalse:[
+        msg := errorString := ('cannot create directory '', newName,'' !!') , '\\(' , (OperatingSystem lastErrorString) , ')'.
+        errorString := msg withCRs.
+        DialogBox warn:errorString.
+        result := false.
+        ^ self
+    ].
+    result := true.
+!
+
+createFile:file
+    "create an empty file"
+
+    |aStream newName msg|
+
+    newName := file baseName.
+    file exists ifTrue:[
+        (Dialog 
+            confirm:(newName, ' already exists\\truncate ?') withCRs
+            yesLabel:('Truncate')
+            noLabel:('Cancel'))
+        ifFalse:[^ self].
+    ].
+
+    FileStream openErrorSignal handle:[:ex|
+        msg := ('Cannot create file '', newName,'' !!') , '\\(' , (FileStream lastErrorString) , ')'.
+        errorString := msg withCRs.
+        ^ DialogBox warn:errorString
+    ] do:[    
+        aStream := file newReadWriteStream.
+    ].
+    aStream notNil ifTrue:[
+        aStream close.
+    ] ifFalse:[
+        msg := ('Cannot create file '', newName, '' !!') , '\\(' , (FileStream lastErrorString) , ')'.
+        errorString := msg withCRs.
+        ^ DialogBox warn:errorString
+    ].
+! !
+
+!Create class methodsFor:'documentation'!
+
+version
+    ^ '$Header$'
+! !