代码拉取完成,页面将自动刷新
package gres
import (
"bytes"
"os"
)
// Close implements Close interface of http.File.
func (f *File) Close() error {
return nil
}
// Readdir implements Readdir interface of http.File.
func (f *File) Readdir(count int) ([]os.FileInfo, error) {
files := f.resource.ScanDir(f.Name(), "*", false)
if len(files) > 0 {
if count <= 0 || count > len(files) {
count = len(files)
}
infos := make([]os.FileInfo, count)
for k, v := range files {
infos[k] = v.FileInfo()
}
return infos, nil
}
return nil, nil
}
// Stat implements Stat interface of http.File.
func (f *File) Stat() (os.FileInfo, error) {
return f.FileInfo(), nil
}
// Read implements the io.Reader interface.
func (f *File) Read(b []byte) (n int, err error) {
reader, err := f.getReader()
if err != nil {
return 0, err
}
return reader.Read(b)
}
// Seek implements the io.Seeker interface.
func (f *File) Seek(offset int64, whence int) (int64, error) {
reader, err := f.getReader()
if err != nil {
return 0, err
}
return reader.Seek(offset, whence)
}
func (f *File) getReader() (*bytes.Reader, error) {
if f.reader == nil {
f.reader = bytes.NewReader(f.Content())
}
return f.reader, nil
}
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。