golang file操作ノート


1、ファイルコピー:
package main

import (
    "fmt"
    "io"
    "os"
    "strings"
)

func main() {
    list := os.Args

    if len(list) != 3 {
        fmt.Println(" , :xxx.go    ")
        return
    }
    fmt.Println(" :", list[1], " ", " :", list[2])
    fmt.Println(" Yy :")
    str := ""
    fmt.Scanln(&str)
    if strings.ToLower(str) == "y" {
        w, err := CopyFile(list[1], list[2])
        if err != nil {
            fmt.Println(err)
            return
        }
        fmt.Println(" , :", w)
    } else {
        fmt.Println(" !")
    }

}

func CopyFile(srcFileName, dstFileName string) (written int64, err error) {
    srcFile, err := os.Open(srcFileName)
    if err != nil {
        return
    }
    defer srcFile.Close()
    dstFile, err := os.OpenFile(dstFileName, os.O_WRONLY|os.O_CREATE, 0644)
    if err != nil {
        return
    }
    defer dstFile.Close()
    return io.Copy(dstFile, srcFile)
}

実行結果:
d:\goprojects\src\day1\ >go run main.go d:\ V1.0.pdf d:\test.pdf
 : d:\ V1.0.pdf    : d:\test.pdf
 Yy :
y
 , : 4146835

d:\goprojects\src\day1\ >go run main.go d:\ V1.0.pdf d:\test.pdf
 : d:\ V1.0.pdf    : d:\test.pdf
 Yy :
n
 !

d:\goprojects\src\day1\ >