package api import ( "os" "path/filepath" "time" ) type FSEntry struct { Name string `json:"name"` Path string `json:"path"` IsDir bool `json:"is_dir"` Size int64 `json:"size"` Mode string `json:"mode"` ModTime time.Time `json:"mod_time"` } func BrowseDirectory(path string) ([]FSEntry, error) { absPath, err := filepath.Abs(path) if err != nil { return nil, err } entries, err := os.ReadDir(absPath) if err != nil { return nil, err } var result []FSEntry for _, entry := range entries { info, err := entry.Info() if err != nil { continue } fsEntry := FSEntry{ Name: entry.Name(), Path: filepath.Join(absPath, entry.Name()), IsDir: entry.IsDir(), Size: info.Size(), Mode: info.Mode().String(), ModTime: info.ModTime(), } result = append(result, fsEntry) } return result, nil }