|
|
||
|---|---|---|
| .. | ||
| .gitignore | ||
| LICENSE | ||
| README.md | ||
| copy.go | ||
| copy_namedpipes.go | ||
| copy_namedpipes_windows.go | ||
| options.go | ||
| preserve_times.go | ||
| stat_times.go | ||
| stat_times_darwin.go | ||
| stat_times_freebsd.go | ||
| stat_times_windows.go | ||
| test_setup.go | ||
| test_setup_windows.go | ||
README.md
copy
copy copies directories recursively.
Example Usage
err := Copy("your/directory", "your/directory.copy")
Advanced Usage
// Options specifies optional actions on copying.
type Options struct {
// OnSymlink can specify what to do on symlink
OnSymlink func(src string) SymlinkAction
// OnDirExists can specify what to do when there is a directory already existing in destination.
OnDirExists func(src, dest string) DirExistsAction
// Skip can specify which files should be skipped
Skip func(src string) (bool, error)
// AddPermission to every entities,
// NO MORE THAN 0777
AddPermission os.FileMode
// Sync file after copy.
// Useful in case when file must be on the disk
// (in case crash happens, for example),
// at the expense of some performance penalty
Sync bool
// Preserve the atime and the mtime of the entries
// On linux we can preserve only up to 1 millisecond accuracy
PreserveTimes bool
}
// For example...
opt := Options{
Skip: func(src string) (bool, error) {
return strings.HasSuffix(src, ".git"), nil
},
}
err := Copy("your/directory", "your/directory.copy", opt)