12345678910111213141516171819202122232425 |
- package system // import "github.com/docker/docker/pkg/system"
- import (
- "time"
- "golang.org/x/sys/windows"
- )
- // setCTime will set the create time on a file. On Windows, this requires
- // calling SetFileTime and explicitly including the create time.
- func setCTime(path string, ctime time.Time) error {
- pathp, err := windows.UTF16PtrFromString(path)
- if err != nil {
- return err
- }
- h, err := windows.CreateFile(pathp,
- windows.FILE_WRITE_ATTRIBUTES, windows.FILE_SHARE_WRITE, nil,
- windows.OPEN_EXISTING, windows.FILE_FLAG_BACKUP_SEMANTICS, 0)
- if err != nil {
- return err
- }
- defer windows.Close(h)
- c := windows.NsecToFiletime(ctime.UnixNano())
- return windows.SetFileTime(h, &c, nil, nil)
- }
|