Я использую следующий код для копирования файлов, который работает нормально. Проблема в том, что когда мы используем этот метод для копирования папок и таких элементов, как проект node_js с узлами node_modules внутри windows , это может занять много времени 40 сек , а в Mac это займет 2 сек .при выполнении трассировки (печати скопированных файлов) мы увидели, что, например, io.copy
потребовалось 5 секунд, чтобы скопировать короткий файл readme или файл json, при каждом запуске он получает разметку на разные файлы , файлы небольшого размеракак json readme etch, это не соответствует , в при другом запуске он зависает на разных файлах (если вы работаете в одном проекте).
мы проверили это на 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 дня, и мы не нашли никакого шаблона: (