github.com/Files-com/files-sdk-go/v2@v2.1.2/file/tmpdownloadpath_darwin.go (about) 1 //go:build darwin 2 3 package file 4 5 import ( 6 "fmt" 7 "os" 8 "path/filepath" 9 ) 10 11 func tmpDownloadPath(path string) string { 12 return _tmpDownloadPath(path, 0) 13 } 14 15 func _tmpDownloadPath(path string, index int) string { 16 var name string 17 18 if index == 0 { 19 name = fmt.Sprintf("%v.download", path) 20 } else { 21 name = fmt.Sprintf("%v (%v).download", path, index) 22 } 23 _, err := os.Stat(name) 24 if os.IsNotExist(err) { 25 os.MkdirAll(name, 0755) 26 _, fileName := filepath.Split(path) 27 return filepath.Join(name, fileName) 28 } 29 return _tmpDownloadPath(path, index+1) 30 } 31 32 func finalizeTmpDownload(tmpName string, finalPath string) error { 33 err := os.Rename(tmpName, finalPath) 34 if err != nil { 35 return err 36 } 37 downloadPackage, _ := filepath.Split(tmpName) 38 return os.Remove(downloadPackage) 39 }