code: func (f *httpFile) Readdir(count int) ([]os.FileInfo, error) {
  	var fis []os.FileInfo
  	if !f.isDir {
  		return fis, nil
  	}
  	di, ok := f.FileInfo.(dirInfo)
  	if !ok {
  		return nil, fmt.Errorf("failed to read directory: %q", f.Name())
  	}
  
  	// If count is positive, the specified number of files will be returned,
  	// and if negative, all remaining files will be returned.
  	// The reading position of which file is returned is held in dirIndex.
  	fnames := f.file.fs.dirs[di.name]
  	flen := len(fnames)
  
  	// If dirIdx reaches the end and the count is a positive value,
  	// an io.EOF error is returned.
  	// In other cases, no error will be returned even if, for example,
  	// you specified more counts than the number of remaining files.
  	start := f.dirIdx
  	if start >= flen && count > 0 {
  		return fis, io.EOF
  	}
  	var end int
  	if count < 0 {
  		end = flen
  	} else {
  		end = start + count
  	}
  	if end > flen {
  		end = flen
  	}
  	for i := start; i < end; i++ {
  		fis = append(fis, f.file.fs.files[path.Join(di.name, fnames[i])].FileInfo)
  	}
  	f.dirIdx += len(fis)
  	return fis, nil
  }
docs: // Readdir returns an empty slice of files, directory
  // listing is disabled.