utils.go 1.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566
  1. package utils
  2. import (
  3. "fmt"
  4. "os"
  5. "path/filepath"
  6. "strings"
  7. )
  8. // 切分 :冒号前面和后面的字符串
  9. func SplitColon(str string) (string, string) {
  10. index := strings.Index(str, ":")
  11. var front, rear string
  12. if index != -1 {
  13. front = str[:index]
  14. rear = str[index+1:]
  15. } else {
  16. fmt.Println("Invalid input format")
  17. }
  18. return front, rear
  19. }
  20. func IsFileOrFolder(path string) (string, error) {
  21. // 获取路径的信息
  22. info, err := os.Stat(path)
  23. if err != nil {
  24. fmt.Println("Error getting file info:", err)
  25. return "", fmt.Errorf("判断是否是文件夹失败 (Error getting file info)")
  26. }
  27. // 判断是文件还是文件夹
  28. if info.IsDir() {
  29. return "folder", nil
  30. } else {
  31. return "file", nil
  32. }
  33. }
  34. // FindDirWithSubstring 查找指定目录中包含特定子字符串的文件夹
  35. func FindDirWithSubstring(path string, substring string) (string, error) {
  36. var foundPath string
  37. // Walk through the directory
  38. err := filepath.Walk(path, func(p string, info os.FileInfo, err error) error {
  39. if err != nil {
  40. return err
  41. }
  42. // Check if the directory name contains the substring
  43. if info.IsDir() && strings.Contains(filepath.Base(p), substring) {
  44. foundPath = p
  45. return fmt.Errorf("found")
  46. }
  47. return nil
  48. })
  49. if err != nil && err.Error() != "found" {
  50. return "", err
  51. }
  52. return foundPath, nil
  53. }