321 (newFile exists) ifTrue:[ |
321 (newFile exists) ifTrue:[ |
322 askResult := true. |
322 askResult := true. |
323 ((newFile asString = filename asString) and:[copy]) ifTrue:[ |
323 ((newFile asString = filename asString) and:[copy]) ifTrue:[ |
324 [newFile exists] whileTrue:[ |
324 [newFile exists] whileTrue:[ |
325 suffix := newFile suffix. |
325 suffix := newFile suffix. |
326 fileString := newFile withoutSuffix baseName, self class copyMoveIfExistSuffixString, '.', suffix. |
326 fileString := newFile withoutSuffix baseName, self class copyMoveIfExistSuffixString. |
|
327 suffix notEmpty ifTrue:[ |
|
328 fileString := fileString, '.', suffix. |
|
329 ]. |
327 newFile := aDirectory construct:fileString. |
330 newFile := aDirectory construct:fileString. |
328 ]. |
331 ]. |
329 ] ifFalse:[ |
332 ] ifFalse:[ |
330 overWriteWarning ifTrue:[ |
333 overWriteWarning ifTrue:[ |
331 askResult := (self fileExistDialogForNewFile:newFile oldFile:filename withCancel:(aColOfSourceFiles size > 1)). |
334 askResult := (self fileExistDialogForNewFile:newFile oldFile:filename withCancel:(aColOfSourceFiles size > 1)). |
660 ! |
663 ! |
661 |
664 |
662 deleteFiles:aColOfFiles |
665 deleteFiles:aColOfFiles |
663 "delete current selected files/directories |
666 "delete current selected files/directories |
664 " |
667 " |
665 |
668 ^ self deleteFiles:aColOfFiles confirm:true |
666 |instance| |
669 ! |
667 |
670 |
668 instance := self new. |
671 deleteFiles:aColOfFiles confirm:confirm |
669 instance deleteFiles:aColOfFiles. |
672 "delete current selected files/directories |
|
673 " |
|
674 |
|
675 |instance| |
|
676 |
|
677 instance := self new. |
|
678 instance deleteFiles:aColOfFiles confirm:confirm. |
670 ^ instance |
679 ^ instance |
671 ! ! |
680 ! ! |
672 |
681 |
673 !FileOperation::Delete class methodsFor:'documentation'! |
682 !FileOperation::Delete class methodsFor:'documentation'! |
674 |
683 |
675 version |
684 version |
676 ^ '$Header: /cvs/stx/stx/libtool/FileOperation.st,v 1.38 2003-07-07 13:53:38 cg Exp $' |
685 ^ '$Header: /cvs/stx/stx/libtool/FileOperation.st,v 1.39 2003-08-15 14:25:38 penk Exp $' |
677 ! ! |
686 ! ! |
678 |
687 |
679 !FileOperation::Delete methodsFor:'actions'! |
688 !FileOperation::Delete methodsFor:'actions'! |
680 |
689 |
681 deleteFile:aFileOrDirectory |
690 deleteFile:aFileOrDirectory |
705 ! |
714 ! |
706 |
715 |
707 deleteFiles:colOfFiles |
716 deleteFiles:colOfFiles |
708 "delete current selected files/directories |
717 "delete current selected files/directories |
709 " |
718 " |
710 |resources retVal ask nFilesToDelete labels values fileTypeString| |
719 ^ self deleteFiles:colOfFiles confirm:true. |
711 |
720 ! |
|
721 |
|
722 deleteFiles:colOfFiles confirm:confirm |
|
723 "delete current selected files/directories |
|
724 " |
|
725 |resources retVal nFilesToDelete ask labels values fileTypeString| |
|
726 |
|
727 ask := confirm. |
712 resources := AbstractFileBrowser classResources. |
728 resources := AbstractFileBrowser classResources. |
713 |
729 |
714 ask := true. |
|
715 nFilesToDelete := colOfFiles size. |
730 nFilesToDelete := colOfFiles size. |
716 colOfFiles do:[:filenameOrString | |
731 colOfFiles do:[:filenameOrString | |
717 |filename answer doDelete| |
732 |filename askForNonEmptyDirectory| |
718 |
733 |
719 filename := filenameOrString asFilename. |
734 filename := filenameOrString asFilename. |
720 |
735 |
721 fileTypeString := ''. |
736 fileTypeString := ''. |
722 filename isSymbolicLink ifTrue:[ |
737 filename isSymbolicLink ifTrue:[ |
742 with:(filename asString allBold) |
757 with:(filename asString allBold) |
743 with:(nFilesToDelete = 1 ifTrue:'' ifFalse:['\\(' , nFilesToDelete printString , ' files alltogether)']) withCRs ) |
758 with:(nFilesToDelete = 1 ifTrue:'' ifFalse:['\\(' , nFilesToDelete printString , ' files alltogether)']) withCRs ) |
744 labels:(resources array:labels) |
759 labels:(resources array:labels) |
745 values:values |
760 values:values |
746 default:(values indexOf:#yes). |
761 default:(values indexOf:#yes). |
|
762 ] ifFalse:[ |
|
763 retVal := #yesToAll. |
747 ]. |
764 ]. |
748 retVal == #cancel ifTrue:[ |
765 retVal == #cancel ifTrue:[ |
749 ^ self. |
766 ^ self. |
750 ]. |
767 ]. |
751 |
768 |
752 retVal == #yesToAll ifTrue:[ |
769 retVal == #yesToAll ifTrue:[ |
753 ask := false. |
770 ask := false. |
754 retVal := #yes. |
771 retVal := #yes. |
755 ]. |
772 ]. |
756 retVal == #yes ifTrue:[ |
773 retVal == #yes ifTrue:[ |
757 doDelete := true. |
774 askForNonEmptyDirectory := true. |
758 filename isNonEmptyDirectory ifTrue:[ |
775 filename isNonEmptyDirectory ifTrue:[ |
759 answer := Dialog |
776 askForNonEmptyDirectory := Dialog |
760 confirmWithCancel:(('Directory ''%1'' is not empty', Character cr asString, 'remove anyway ?') |
777 confirmWithCancel:(('Directory ''%1'' is not empty', Character cr asString, 'remove anyway ?') |
761 bindWith:filename pathName allBold) |
778 bindWith:filename pathName allBold) |
762 labels:( #('Cancel' 'Keep' 'Remove') ) |
779 labels:( #('Cancel' 'Keep' 'Remove') ) |
763 values:#(nil false true) |
780 values:#(nil false true) |
764 default:3. |
781 default:3. |
765 answer == nil ifTrue:[ |
782 askForNonEmptyDirectory == nil ifTrue:[ |
766 ^ self |
783 ^ self |
767 ]. |
784 ]. |
768 doDelete := answer |
|
769 ]. |
785 ]. |
770 doDelete ifTrue:[ |
786 askForNonEmptyDirectory ifTrue:[ |
771 self deleteFile:filename. |
787 self deleteFile:filename. |
772 ] |
788 ] |
773 ]. |
789 ]. |
774 ]. |
790 ]. |
775 ! ! |
791 ! ! |