https://github.com/miroslav-matejovsky/winfileinfo
go library to retrieve win file information
https://github.com/miroslav-matejovsky/winfileinfo
devops fileinfo golang winapi windows
Last synced: 5 months ago
JSON representation
go library to retrieve win file information
- Host: GitHub
- URL: https://github.com/miroslav-matejovsky/winfileinfo
- Owner: miroslav-matejovsky
- License: mit
- Created: 2025-02-22T09:02:10.000Z (over 1 year ago)
- Default Branch: main
- Last Pushed: 2025-12-13T03:50:18.000Z (6 months ago)
- Last Synced: 2025-12-14T17:51:07.164Z (6 months ago)
- Topics: devops, fileinfo, golang, winapi, windows
- Language: Go
- Homepage: https://pkg.go.dev/github.com/miroslav-matejovsky/winfileinfo
- Size: 55.7 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# winfileinfo
`winfileinfo` is a Go module for retrieving file version and file time information on Windows.
## Installation
To install the module, use `go get`:
```sh
go get github.com/miroslav-matejovsky/winfileinfo
```
## Usage
### Retrieving File Version Information
You can retrieve the file version information using the `WinFileInfo` struct.
```go
package main
import (
"fmt"
"log"
"github.com/miroslav-matejovsky/winfileinfo"
)
func main() {
file := `C:\Windows\System32\notepad.exe`
wf, err := winfileinfo.NewWinFile(file)
if err != nil {
log.Fatalf("Error creating WinFile: %v", err)
}
fi, err := wf.GetFileInfo()
if err != nil {
log.Fatalf("Error getting file info: %v", err)
}
fmt.Printf("File Version: %s\n", fi.FileVersion)
fmt.Printf("Product Version: %s\n", fi.ProductVersion)
}
```
### Retrieving File Time Information
You can retrieve the file time information using the `WinFileTime` struct.
```go
package main
import (
"fmt"
"log"
"github.com/miroslav-matejovsky/winfileinfo"
)
func main() {
file := `C:\Windows\System32\notepad.exe`
wf, err := winfileinfo.NewWinFile(file)
if err != nil {
log.Fatalf("Error creating WinFile: %v", err)
}
ft, err := wf.GetFileTime()
if err != nil {
log.Fatalf("Error getting file time: %v", err)
}
fmt.Printf("Creation Time: %s\n", ft.CreationTime)
fmt.Printf("Last Access Time: %s\n", ft.LastAccessTime)
fmt.Printf("Last Write Time: %s\n", ft.LastWriteTime)
}
```
## Testing
To run the tests, use the `go test` command:
```sh
go test ./...
```
## License
This project is licensed under the MIT License. See the [LICENSE](LICENSE) file for details.