gitee.com/quant1x/gox@v1.21.2/api/filepath.go (about) 1 package api 2 3 import ( 4 "gitee.com/quant1x/gox/util/homedir" 5 "os" 6 "path/filepath" 7 ) 8 9 const ( 10 // CACHE_DIR_MODE 目录权限 11 CACHE_DIR_MODE os.FileMode = 0755 12 // CACHE_FILE_MODE 文件权限 13 CACHE_FILE_MODE os.FileMode = 0644 14 15 // DEBUG 调试开关 16 DEBUG = false 17 // CACHE_REPLACE 文件替换模式, 会用到os.TRUNC 18 CACHE_REPLACE = os.O_CREATE | os.O_RDWR | os.O_TRUNC 19 // CACHE_UPDATE 更新 20 CACHE_UPDATE = os.O_CREATE | os.O_WRONLY 21 ) 22 23 // CheckFilepath 24 // 25 // 检查filename 文件路径, 如果不存在就创建 26 func CheckFilepath(filename string, notExistToCreate ...bool) error { 27 filename, _ = homedir.Expand(filename) 28 path := filepath.Dir(filename) 29 dir, err := os.Lstat(path) 30 if err == nil { 31 // 已存在 32 return nil 33 } 34 if os.IsExist(err) { 35 // 已存在 36 return nil 37 } 38 __create := false 39 if len(notExistToCreate) > 0 { 40 __create = notExistToCreate[0] 41 } 42 if !__create { 43 return os.ErrNotExist 44 } 45 // 不存在, 创建 46 err = os.MkdirAll(path, CACHE_DIR_MODE) 47 if err != nil { 48 return err 49 } 50 dir, err = os.Stat(path) 51 if err != nil { 52 return err 53 } 54 if dir.IsDir() { 55 return nil 56 } 57 return os.ErrNotExist 58 } 59 60 // FileExist 路径是否存在 61 func FileExist(path string) bool { 62 _, err := os.Lstat(path) 63 return !os.IsNotExist(err) 64 } 65 66 // FileIsValid 检查文件是否有效 67 func FileIsValid(path string) bool { 68 finfo, err := os.Lstat(path) 69 found := !os.IsNotExist(err) 70 if !found { 71 return false 72 } 73 if finfo.Size() > 2 { 74 return true 75 } 76 return false 77 }