You are here

다른이름으로 저장시 덮어쓰기.

질문입니다. 콤보박스를 이용해서 이미 지정되어 있는 파일을 원하는 경로에 복사하여 생성되게끔
코드를 작성하였습니다. 그런데 이미 있는 파일에 덮어쓰기를 하려고하면 에러가 나네요.
아래 주석처리 한 부분을 고쳐야 되는데, 잘 모르겠습니다. -_-;;
어떻게 고치면 될까요?
# 그리고 코드 입력할때 쓰는 명령어가.. [/code] ??? 기억이 안납니다. 요것도 추가로 알려주세용.ㅎ

set file "H:/TEST/test.dat"
set path [file normalize $file]

if { 0 } {
        proc cp {} {
                global num
                set file [tk_getSaveFile -title "Output File Save As..." -parent . \
                        -filetypes $::typelist]
                if { $file == "" } {
                        return; # they clicked cancel
                }

                ##############  here  ##############

                set x [catch {set fd [open $file w+]}]
                set y [catch {gets $fd line
puts $fd {$line}
}]
                set z [catch {close $fd}]
                #####################################
                       
                if { $x || $y || $z || ![file exists $file] || ![file isfile $file] || ![file readable $file] } {
                        tk_messageBox -parent . -icon error \
                                -message "An error occurred while saving to \"$file\""
                } else {
                        tk_messageBox -parent . -icon info \
                                -message "Save successful"
                }
        };# cp
}

proc cp {} {
        global path
        set file [tk_getSaveFile -title "Output File Save As..." -parent . \
                -filetypes $::typelist]
        if { $file == "" } { return }
        if { [catch {
                file copy $path $file
        }  errMsg ] } {
                tk_messageBox -parent . -icon error \
                        -message "An error occurred while saving to \"$file\"\n\n$errMsg"
        } {
                tk_messageBox -parent . -icon info \
                        -message "Save successful"
        }

}

set combo [ComboBox .cmb\
                -textvariable out1\
                -values {"test"}\
                -editable false\
                -modifycmd {
                        cp
                }]
pack .cmb -padx 5 -pady 3 -anchor w -fill both