MCPcopy
hub / github.com/filebrowser/filebrowser / Copy

Function Copy

fileutils/copy.go:12–40  ·  view source on GitHub ↗

Copy copies a file or folder from one place to another.

(afs afero.Fs, src, dst string, fileMode, dirMode fs.FileMode)

Source from the content-addressed store, hash-verified

10
11// Copy copies a file or folder from one place to another.
12func Copy(afs afero.Fs, src, dst string, fileMode, dirMode fs.FileMode) error {
13 if src = path.Clean("/" + src); src == "" {
14 return os.ErrNotExist
15 }
16
17 if dst = path.Clean("/" + dst); dst == "" {
18 return os.ErrNotExist
19 }
20
21 if src == "/" || dst == "/" {
22 // Prohibit copying from or to the virtual root directory.
23 return os.ErrInvalid
24 }
25
26 if dst == src {
27 return os.ErrInvalid
28 }
29
30 info, err := afs.Stat(src)
31 if err != nil {
32 return err
33 }
34
35 if info.IsDir() {
36 return CopyDir(afs, src, dst, fileMode, dirMode)
37 }
38
39 return CopyFile(afs, src, dst, fileMode, dirMode)
40}

Callers 4

patchActionFunction · 0.92
MoveFileFunction · 0.85

Calls 4

CopyDirFunction · 0.85
CopyFileFunction · 0.85
CleanMethod · 0.45
StatMethod · 0.45