/
githubmirror
/
act
Обзор
Документация
Войти
/
githubmirror
/
act
Код
Запросы
0
Пакеты
0
Релизы
0
Аналитика
Безопасность
master
pkg/common/file.go
73 строки
1 KB
Eng Zer Jun
refactor: move from io/ioutil to io and os packages (#1417)
29 окт 2022, 20:15
Не верифицирован
29 окт 2022, 20:15
2f1c5a1
Код
Авторство
О чём код?
package common import ( "fmt" "io" "os" ) // CopyFile copy file func CopyFile(source string, dest string) (err error) { sourcefile, err := os.Open(source) if err != nil { return err } defer sourcefile.Close() destfile, err := os.Create(dest) if err != nil { return err } defer destfile.Close() _, err = io.Copy(destfile, sourcefile) if err == nil { sourceinfo, err := os.Stat(source) if err != nil { _ = os.Chmod(dest, sourceinfo.Mode()) } } return } // CopyDir recursive copy of directory func CopyDir(source string, dest string) (err error) { // get properties of source dir sourceinfo, err := os.Stat(source) if err != nil { return err } // create dest dir err = os.MkdirAll(dest, sourceinfo.Mode()) if err != nil { return err } objects, err := os.ReadDir(source) for _, obj := range objects { sourcefilepointer := source + "/" + obj.Name() destinationfilepointer := dest + "/" + obj.Name() if obj.IsDir() { // create sub-directories - recursively err = CopyDir(sourcefilepointer, destinationfilepointer) if err != nil { fmt.Println(err) } } else { // perform copy err = CopyFile(sourcefilepointer, destinationfilepointer) if err != nil { fmt.Println(err) } } } return err }