123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263 |
- package controller
- import (
- "fmt"
- "github.com/gin-gonic/gin"
- "hongze/hongze_yb/controller/response"
- "io/ioutil"
- "log"
- "os/exec"
- "strings"
- "time"
- )
- type PahtInfo struct {
- CurrPath string `json:"curr_path" description:"当前路径"`
- FileDirList []FileDirList `json:"file_dir_list" description:"当前路径下的文件/目录"`
- }
- func GetPathInfo(c *gin.Context) {
- cd := exec.Command("pwd")
- str, err := cd.Output()
- if err != nil {
- response.Fail("获取目录信息失败:"+err.Error(), c)
- }
- fmt.Println(string(str))
- path := strings.Replace(string(str), "\n", "", -1)
- fileDirList, err := getPathList(path)
- if err != nil {
- response.Fail("获取信息失败:"+err.Error(), c)
- }
- response.OkData("获取成功", PahtInfo{
- CurrPath: path,
- FileDirList: fileDirList,
- }, c)
- }
- type FileDirList struct {
- Name string `json:"name" description:"文件/目录名称"`
- FileType string `json:"file_type" description:"文件类型,枚举值:file、dir"`
- Size int64 `json:"size" description:"文件大小"`
- ModifyTime time.Time `json:"modify_time" description:"最后一次修改时间"`
- }
- func getPathList(dirname string) (fileDirList []FileDirList, err error) {
- fileInfos, err := ioutil.ReadDir(dirname)
- if err != nil {
- log.Fatal(err)
- }
- for _, fi := range fileInfos {
- fileDirInfo := FileDirList{
- Name: fi.Name(),
- FileType: "file",
- Size: fi.Size(),
- ModifyTime: fi.ModTime(),
- }
- if fi.IsDir() {
- fileDirInfo.FileType = "dir"
- }
- fileDirList = append(fileDirList, fileDirInfo)
- }
- return
- }
|