func (f *fileHandle) Stat() (os.FileInfo, error) {
	return f.fi, nil
}
Stat returns information about the file handle.
package tgzfs
import (
	"bytes"
	"io"
	"os"
)
type file struct {
	fi       os.FileInfo
	data     []byte
	children map[string]*file
}
func newFile() *file {
	return &file{
		children: make(map[string]*file),
	}
}
func (f *file) setFileInfo(fi os.FileInfo) {
	f.fi = fi
}
func (f *file) setData(data []byte) {
	f.data = data
}
func (f *file) open() *fileHandle {
	h := &fileHandle{
		fi:   f.fi,
		data: bytes.NewReader(f.data),
	}
	for _, v := range f.children {
		h.listing = append(h.listing, v.fi)
	}
	return h
}
type fileHandle struct {
	fi      os.FileInfo
	listing []os.FileInfo
	data    *bytes.Reader
}
func (h *fileHandle) Close() error {
	return nil
}
func (h *fileHandle) Read(p []byte) (int, error) {
	return h.data.Read(p)
}
func (h *fileHandle) Readdir(count int) (entries []os.FileInfo, err error) {
	if len(h.listing) == 0 {
		return nil, io.EOF
	}
	if len(h.listing) < count {
		count = len(h.listing)
	}
	listing := h.listing[:count]
	h.listing = h.listing[:len(h.listing)-len(listing)]
	return listing, nil
}
func (h *fileHandle) Seek(offset int64, whence int) (int64, error) {
	return h.data.Seek(offset, whence)
}