Antonio Mika
·
2025-03-12
file.go
1package utils
2
3import (
4 "os"
5 "time"
6)
7
8type VirtualFile struct {
9 FName string
10 FIsDir bool
11 FSize int64
12 FModTime time.Time
13 FSys any
14}
15
16func (f *VirtualFile) Name() string { return f.FName }
17func (f *VirtualFile) Size() int64 { return f.FSize }
18func (f *VirtualFile) Mode() os.FileMode {
19 if f.FIsDir {
20 return os.FileMode(0755) | os.ModeDir
21 }
22 return os.FileMode(0644)
23}
24func (f *VirtualFile) ModTime() time.Time {
25 if f.FModTime.IsZero() {
26 return time.Now()
27 }
28 return f.FModTime
29}
30func (f *VirtualFile) IsDir() bool { return f.FIsDir }
31func (f *VirtualFile) Sys() any { return f.FSys }