github.com/fzfile/BaiduPCS-Go@v0.0.0-20200606205115-4408961cf336/internal/pcscommand/recycle.go (about) 1 package pcscommand 2 3 import ( 4 "fmt" 5 "github.com/fzfile/BaiduPCS-Go/baidupcs" 6 "github.com/fzfile/BaiduPCS-Go/pcstable" 7 "github.com/fzfile/BaiduPCS-Go/pcsutil/converter" 8 "github.com/fzfile/BaiduPCS-Go/pcsutil/pcstime" 9 "github.com/olekukonko/tablewriter" 10 "os" 11 "strconv" 12 ) 13 14 // RunRecycleList 执行列出回收站文件列表 15 func RunRecycleList(page int) { 16 if page < 1 { 17 page = 1 18 } 19 20 pcs := GetBaiduPCS() 21 fdl, err := pcs.RecycleList(page) 22 if err != nil { 23 fmt.Println(err) 24 return 25 } 26 27 tb := pcstable.NewTable(os.Stdout) 28 tb.SetHeader([]string{"#", "fs_id", "文件大小", "创建日期", "修改日期", "md5(截图请打码)", "剩余时间", "路径"}) 29 tb.SetColumnAlignment([]int{tablewriter.ALIGN_DEFAULT, tablewriter.ALIGN_RIGHT, tablewriter.ALIGN_RIGHT, tablewriter.ALIGN_LEFT, tablewriter.ALIGN_LEFT, tablewriter.ALIGN_LEFT, tablewriter.ALIGN_DEFAULT, tablewriter.ALIGN_LEFT}) 30 for k, file := range fdl { 31 if file.Isdir == 1 { 32 tb.Append([]string{strconv.Itoa(k), strconv.FormatInt(file.FsID, 10), "-", pcstime.FormatTime(file.Ctime), pcstime.FormatTime(file.Mtime), file.MD5, strconv.Itoa(file.LeftTime), file.Path + baidupcs.PathSeparator}) 33 continue 34 } 35 tb.Append([]string{strconv.Itoa(k), strconv.FormatInt(file.FsID, 10), converter.ConvertFileSize(file.Size, 2), pcstime.FormatTime(file.Ctime), pcstime.FormatTime(file.Mtime), file.MD5, strconv.Itoa(file.LeftTime), file.Path}) 36 } 37 38 tb.Render() 39 } 40 41 // RunRecycleRestore 执行还原回收站文件或目录 42 func RunRecycleRestore(fidStrList ...string) { 43 var ( 44 fidList = converter.SliceStringToInt64(fidStrList) 45 pcs = GetBaiduPCS() 46 ex, err = pcs.RecycleRestore(fidList...) 47 ) 48 if err != nil { 49 fmt.Println(err) 50 if len(ex) > 0 { 51 fmt.Printf("\n以下的 fs_id 还原成功, 数量: %d\n", len(ex)) 52 for k := range ex { 53 fmt.Println(ex[k].FsID) 54 } 55 } 56 return 57 } 58 59 fmt.Printf("还原成功, 数量: %d\n", len(ex)) 60 } 61 62 // RunRecycleDelete 执行删除回收站文件或目录 63 func RunRecycleDelete(fidStrList ...string) { 64 var ( 65 fidList = converter.SliceStringToInt64(fidStrList) 66 pcs = GetBaiduPCS() 67 err = pcs.RecycleDelete(fidList...) 68 ) 69 if err != nil { 70 fmt.Println(err) 71 return 72 } 73 74 fmt.Printf("删除成功\n") 75 } 76 77 // RunRecycleClear 清空回收站 78 func RunRecycleClear() { 79 pcs := GetBaiduPCS() 80 sussNum, err := pcs.RecycleClear() 81 if err != nil { 82 fmt.Println(err) 83 return 84 } 85 fmt.Printf("清空回收站成功, 数量: %d\n", sussNum) 86 }