Exposes sys.Stat_t as a portable alternative to syscall.Stat_t (#1567)
Signed-off-by: Adrian Cole <adrian@tetrate.io>
This commit is contained in:
26
sys/stat_windows.go
Normal file
26
sys/stat_windows.go
Normal file
@@ -0,0 +1,26 @@
|
||||
//go:build (amd64 || arm64) && windows
|
||||
|
||||
package sys
|
||||
|
||||
import (
|
||||
"io/fs"
|
||||
"syscall"
|
||||
)
|
||||
|
||||
const sysParseable = true
|
||||
|
||||
func statFromFileInfo(info fs.FileInfo) Stat_t {
|
||||
if d, ok := info.Sys().(*syscall.Win32FileAttributeData); ok {
|
||||
st := Stat_t{}
|
||||
st.Ino = 0 // not in Win32FileAttributeData
|
||||
st.Dev = 0 // not in Win32FileAttributeData
|
||||
st.Mode = info.Mode()
|
||||
st.Nlink = 1 // not in Win32FileAttributeData
|
||||
st.Size = info.Size()
|
||||
st.Atim = d.LastAccessTime.Nanoseconds()
|
||||
st.Mtim = d.LastWriteTime.Nanoseconds()
|
||||
st.Ctim = d.CreationTime.Nanoseconds()
|
||||
return st
|
||||
}
|
||||
return defaultStatFromFileInfo(info)
|
||||
}
|
||||
Reference in New Issue
Block a user