【发布时间】:2022-04-24 19:26:51
【问题描述】:
我正在尝试使用 os.Replace() 将文件从 C 盘移动到 H 盘。
代码如下:
func MoveFile(source string, destination string) {
err := os.Rename(source, destination)
if err != nil {
fmt.Println(err)
}
}
但是,当我运行代码时,出现以下错误:
rename C:\old\path\to\file.txt H:\new\path\to\file.txt: The system cannot move the file to a different disk drive.
我在 GitHub 上发现了 this 问题,指出了问题,但似乎他们不会更改此功能以允许它在不同的磁盘驱动器上移动文件。
我已经搜索了移动文件的其他可能性,但在标准文档或互联网上一无所获。
那么,我现在应该怎么做才能在不同的磁盘驱动器上移动文件?
-
嗯,这应该很明显:您将文件复制到新位置(创建一个新文件)并在副本成功写入后删除旧文件。
-
好的,但是 go 似乎没有提供复制文件的方法,我在 os 包中找不到任何东西。还是我需要创建自己的复制功能,在其中创建一个全新的文件并使用流或复制数据?
-
是的,对于小文件来说这完全是微不足道的(比如 2 行),对于大文件来说只是稍微复杂一些。