我使用以下代码复制可以正常工作的文件
问题是,当我们使用此方法复制文件夹和诸如node_js项目之类的项目时,其中会包含node_modules
在 windows 中,这可能需要很长时间 40秒,而在Mac中,则需要 2秒。
在进行跟踪(打印复制的文件)时,我们看到例如io.copy
花了5秒钟来复制简短的自述文件
或json文件,每次运行时都会s 塞入不同的文件,小型文件(如json自述文件蚀刻)
这是不一致,在不同运行中,它卡在不同文件上(如果您在同一项目上运行)。
我们在3个不同的Windows10机器(1-3岁)和2个不同的MacBook(3岁)上进行了检查 在完全相同的项目上。可以是什么?
func walk(src string, baseDir string, archive *zip.Writer) error {
return filepath.Walk(src, func(path string, info os.FileInfo, err error) (e error) {
if err != nil {
return err
}
if info.IsDir() {
return
}
header, err := zip.FileInfoHeader(info)
if err != nil {
return err
}
if baseDir != "" {
header.Name = filepath.ToSlash(getRelativePath(path, baseDir))
}
header.Method = zip.Deflate
writer, err := archive.CreateHeader(header)
if err != nil {
return err
}
file, err := os.Open(path)
if err != nil {
return err
}
defer func() {
e = CloseFile(file, e)
}()
_, err = io.Copy(writer, file)
return err
})
}
我们正在检查将近4天,但没有找到任何模式:(