91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

golang 實現文件拷貝的2種方式

發布時間:2020-07-24 06:39:42 來源:網絡 閱讀:8619 作者:暮色伊人 欄目:編程語言
package main

import (
    "fmt"
    "io"
    "os"
    "path/filepath"
    "strconv"
)

var BUFFERSIZE int64

func Copy1(src, dst string, BUFFERSIZE int64) error {
    sourceFileStat, err := os.Stat(src)
    if err != nil {
        return err
    }

    if !sourceFileStat.Mode().IsRegular() {
        return fmt.Errorf("%s is not a regular file", src)
    }
    source, err := os.Open(src)
    if err != nil {
        return err
    }
    defer source.Close()

    _, err = os.Stat(dst)
    if err == nil {
        return fmt.Errorf("file %s already exists", dst)
    }
    destination, err := os.Create(dst)
    if err != nil {
        return err
    }
    defer destination.Close()
    if err != nil {
        panic(err)
    }
    buf := make([]byte, BUFFERSIZE)
    for {
        n, err := source.Read(buf)
        if err != nil && err != io.EOF {
            return err
        }
        if n == 0 {
            break
        }
        if _, err := destination.Write(buf[:n]); err != nil {
            return err
        }
    }
    return err
}

func Copy(src, dst string) (int64, error) {
    sourceFileStat, err := os.Stat(src)
    if err != nil {
        return 0, err
    }

    if !sourceFileStat.Mode().IsRegular() {
        return 0, fmt.Errorf("%s is not a regular file", src)
    }

    source, err := os.Open(src)
    if err != nil {
            return 0, err
    }
    defer source.Close()

    destination, err := os.Create(dst)
    if err != nil {
        return 0, err
    }

    defer destination.Close()
    nBytes, err := io.Copy(destination, source)
    return nBytes, err
}

func main() {
    if len(os.Args) != 4 {
        fmt.Printf("usage: %s source destination BUFFERSIZE\n",
            filepath.Base(os.Args[0]))
        os.Exit(1)
    }

    source := os.Args[1]
    destination := os.Args[2]
    BUFFERSIZE, _ = strconv.ParseInt(os.Args[3], 10, 64)

    fmt.Printf("Copying %s to %s\n", source, destination)
    err := Copy1(source, destination, BUFFERSIZE)
    if err != nil {
        fmt.Printf("File copying failed: %q\n", err)
    }
}
向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

探索| 东阿县| 临漳县| 林周县| 贵定县| 蒲江县| 福安市| 玛沁县| 双牌县| 长海县| 祁连县| 永修县| 大邑县| 晋州市| 枞阳县| 保靖县| 花莲县| 芮城县| 乐昌市| 辉县市| 苍梧县| 四川省| 澄迈县| 定州市| 周宁县| 茂名市| 佛冈县| 郁南县| 毕节市| 曲麻莱县| 赞皇县| 乌海市| 西峡县| 志丹县| 孟村| 那曲县| 弋阳县| 通州区| 灵寿县| 大新县| 望奎县|