大規模ファイルの転送機能を Golang で実装する方法
在Go语言中,可以使用io.Copy()函数来实现大文件传输功能。io.Copy()函数会从源文件(例如,一个io.Reader接口)中读取数据,并将其写入目标文件(例如,一个io.Writer接口)。
大規模ファイル転送機能を実装するには、次の例のように `io.Copy()` 関数を使用できます。
package main
import (
"fmt"
"io"
"os"
)
func main() {
sourceFile := "./source.txt" // 源文件路径
destinationFile := "./destination.txt" // 目标文件路径
err := copyFile(sourceFile, destinationFile)
if err != nil {
fmt.Println("文件传输失败:", err)
return
}
fmt.Println("文件传输完成")
}
// 复制文件
func copyFile(sourceFile string, destinationFile string) error {
// 打开源文件
src, err := os.Open(sourceFile)
if err != nil {
return err
}
defer src.Close()
// 创建目标文件
dst, err := os.Create(destinationFile)
if err != nil {
return err
}
defer dst.Close()
// 复制数据
_, err = io.Copy(dst, src)
if err != nil {
return err
}
return nil
}
上のサンプルコードで、copyFile()関数は、ソースファイルとデスティネーションファイルのパスをパラメータに取って、まずソースファイルを開いてデスティネーションファイルを作成し、io.Copy()関数でソースファイルの内容をデスティネーションファイルにコピーしています。
実際の場面では、 ファイルの存在やパーミッションの有無など、より複雑なエラー処理が必要となるので注意してください。ここでは大きなファイル転送の基本的な機能のみを示します。