Go实现文件复制、移动(cp、mv命令)
warning:
这篇文章距离上次修改已过200天,其中的内容可能已经有所变动。
在Go中实现类似于Unix系统中cp
(复制)和mv
(移动/重命名)的功能,可以使用标准库中的io
和os
包。以下是实现文件复制和移动的简单示例代码:
package main
import (
"io"
"os"
)
// 文件
func CopyFile(src, dest string) (err error) {
srcFile, err := os.Open(src)
if err != nil {
return err
}
defer srcFile.Close()
destFile, err := os.Create(dest)
if err != nil {
return err
}
defer destFile.Close()
_, err = io.Copy(destFile, srcFile)
if err == nil {
err = destFile.Sync()
}
return err
}
// 移动/重命名文件
func MoveFile(src, dest string) (err error) {
err = CopyFile(src, dest)
if err != nil {
return err
}
return os.Remove(src)
}
func main() {
// 复制文件
err := CopyFile("source.txt", "dest.txt")
if err != nil {
panic(err)
}
// 移动文件
err = MoveFile("source.txt", "renamed.txt")
if err != nil {
panic(err)
}
}
这段代码中,CopyFile
函数负责复制文件,而MoveFile
函数先调用CopyFile
复制文件,然后删除原文件以模拟移动操作。在实际应用中,你可能需要添加更多的错误处理和参数检查。
评论已关闭