(isCheck bool, originalPath, treeType, pathItem string, fileOp fileUtils.FileOp)
| 856 | } |
| 857 | |
| 858 | func loadTreeWithAllFile(isCheck bool, originalPath, treeType, pathItem string, fileOp fileUtils.FileOp) []dto.CleanTree { |
| 859 | var lists []dto.CleanTree |
| 860 | |
| 861 | files, err := os.ReadDir(pathItem) |
| 862 | if err != nil { |
| 863 | return lists |
| 864 | } |
| 865 | for _, file := range files { |
| 866 | if treeType == "upload" && ((file.Name() == "theme" || file.Name() == "skills-hub") && file.IsDir()) { |
| 867 | continue |
| 868 | } |
| 869 | if treeType == "system_log" && (file.Name() == "1Panel-Core.log" || file.Name() == "1Panel.log" || file.IsDir()) { |
| 870 | continue |
| 871 | } |
| 872 | if (treeType == "upload" || treeType == "download") && file.IsDir() && (file.Name() == "app" || file.Name() == "database" || file.Name() == "website" || file.Name() == "directory") { |
| 873 | continue |
| 874 | } |
| 875 | size := uint64(0) |
| 876 | name := strings.TrimPrefix(path.Join(pathItem, file.Name()), originalPath+"/") |
| 877 | if file.IsDir() { |
| 878 | sizeItem, err := fileOp.GetDirSize(path.Join(pathItem, file.Name())) |
| 879 | if err != nil { |
| 880 | continue |
| 881 | } |
| 882 | size = uint64(sizeItem) |
| 883 | } else { |
| 884 | fileInfo, err := file.Info() |
| 885 | if err != nil { |
| 886 | continue |
| 887 | } |
| 888 | size = uint64(fileInfo.Size()) |
| 889 | } |
| 890 | item := dto.CleanTree{ |
| 891 | ID: uuid.NewString(), |
| 892 | Label: file.Name(), |
| 893 | Type: treeType, |
| 894 | Size: size, |
| 895 | Name: name, |
| 896 | IsCheck: isCheck, |
| 897 | IsRecommend: isCheck, |
| 898 | CanDelete: true, |
| 899 | } |
| 900 | if file.IsDir() { |
| 901 | item.Children = loadTreeWithAllFile(isCheck, originalPath, treeType, path.Join(pathItem, file.Name()), fileOp) |
| 902 | } |
| 903 | lists = append(lists, item) |
| 904 | } |
| 905 | return lists |
| 906 | } |
| 907 | |
| 908 | func dropFileOrDir(itemPath string) { |
| 909 | if err := os.RemoveAll(itemPath); err != nil { |
no test coverage detected