使用 Go 在 Windows 中擷取檔案建立日期
處理檔案時,通常需要擷取諸如建立日期之類的資訊。雖然 os.Stat 和 os.Chtimes 等流行的 Go 套件提供了對其他檔案屬性的深入了解,但獲取建立日期似乎具有挑戰性。本文將示範在 Windows 環境中存取文件建立日期的具體解決方案。
與其他屬性不同,使用上述方法不容易存取建立日期。相反,我們必須深入研究 FileInfo.Sys 方法,它提供系統特定的資料結構。對於 Windows,這對應於 syscall.Win32FileAttributeData 類型。
Win32FileAttributeData 類型包含多個檔案屬性,包括 CreationTime 欄位。該欄位包含一個 Filetime 類型,它表示一個 64 位元整數,表示自 1601 年 1 月 1 日以來的奈秒數。
要擷取 Unix 時間戳格式的建立時間,我們可以使用以下程式碼:
d := fi.Sys().(*syscall.Win32FileAttributeData) cTime = time.Unix(0, d.CreationTime.Nanoseconds())
這種方式可以讓我們在Windows環境下有效率地取得檔案的建立日期。然而,值得注意的是,該解決方案是特定於 Windows 的,並且應該包含在建置約束中。這可以透過將程式碼放置在 _windows.go 檔案中或使用 //go:build windows 指令來保護它來實現。
免責聲明: 提供的所有資源部分來自互聯網,如果有侵犯您的版權或其他權益,請說明詳細緣由並提供版權或權益證明然後發到郵箱:[email protected] 我們會在第一時間內為您處理。
Copyright© 2022 湘ICP备2022001581号-3