2024-11-03 16:32:57 +01:00
|
|
|
//go:build darwin || linux || windows
|
|
|
|
|
|
|
|
package fs
|
|
|
|
|
|
|
|
import "os"
|
|
|
|
|
|
|
|
type fdMetadataHandle struct {
|
|
|
|
name string
|
|
|
|
f *os.File
|
|
|
|
}
|
|
|
|
|
|
|
|
var _ metadataHandle = &fdMetadataHandle{}
|
|
|
|
|
|
|
|
func newFdMetadataHandle(name string, f *os.File) *fdMetadataHandle {
|
|
|
|
return &fdMetadataHandle{
|
|
|
|
name: name,
|
|
|
|
f: f,
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
func (p *fdMetadataHandle) Name() string {
|
|
|
|
return p.name
|
|
|
|
}
|
|
|
|
|
|
|
|
func (p *fdMetadataHandle) Stat() (*ExtendedFileInfo, error) {
|
|
|
|
fi, err := p.f.Stat()
|
|
|
|
if err != nil {
|
|
|
|
return nil, err
|
|
|
|
}
|
|
|
|
return extendedStat(fi), nil
|
|
|
|
}
|
|
|
|
|
|
|
|
func (p *fdMetadataHandle) Readlink() (string, error) {
|
2024-11-01 23:19:17 +01:00
|
|
|
return Freadlink(p.f.Fd(), fixpath(p.name))
|
2024-11-03 16:32:57 +01:00
|
|
|
}
|