Go を使用して Windows でファイル作成日を取得する
ファイルを扱うとき、作成日などの情報を取得することが必要になることがよくあります。 os.Stat や os.Chtimes などの一般的な Go パッケージは、他のファイル属性についての洞察を提供しますが、作成日を取得するのは難しいようです。この記事では、Windows 環境でファイルの作成日にアクセスするための具体的な解決策を示します。
他の属性とは異なり、前述の方法を使用して作成日に簡単にアクセスすることはできません。代わりに、システム固有のデータ構造を提供する FileInfo.Sys メソッドを詳しく調べる必要があります。 Windows の場合、これは syscall.Win32FileAttributeData 型に対応します。
Win32FileAttributeData 型には、CreationTime フィールドなどのいくつかのファイル属性が含まれます。このフィールドには、1601 年 1 月 1 日からのナノ秒数を表す 64 ビット整数を表す Filetime タイプが含まれています。
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