Maison >développement back-end >Golang >Comment puis-je accéder efficacement à la date de création d'un fichier sous Windows à l'aide de Go ?

Comment puis-je accéder efficacement à la date de création d'un fichier sous Windows à l'aide de Go ?

DDD
DDDoriginal
2024-11-23 18:44:13582parcourir

How Can I Efficiently Access a File's Creation Date in Windows Using Go?

Accès à la date de création du fichier sous Windows avec Go

Question :

Recherche des métadonnées du fichier, comme la date de création, peut être utile pour divers scénarios. Sous Windows, comment pouvons-nous accéder efficacement aux informations de création de fichiers à l'aide de la bibliothèque standard de Go ?

Réponse :

La bibliothèque standard de Go fournit des interfaces pour approfondir les attributs de fichiers spécifiques au système. Cependant, les fonctions os.Stat() et os.Chtimes() couramment utilisées ne fournissent pas directement d'informations sur la date de création.

Pour accéder à la date de création sous Windows, nous devons utiliser la méthode FileInfo.Sys(). . Cette méthode renvoie les structures de données spécifiques au système, qui pour Windows est la structure syscall.Win32FileAttributeData.

La structure Win32FileAttributeData contient divers attributs, notamment :

  • FileAttributes : attributs de fichier tels que en lecture seule, masqué, etc.
  • CreationTime : horodatage nanoseconde du fichier création
  • LastAccessTime : horodatage nanoseconde du dernier accès au fichier
  • LastWriteTime : horodatage nanoseconde de la dernière écriture du fichier
  • FileSizeHigh : taille de fichier élevée de 32 bits
  • FileSizeLow : Faible taille de fichier de 32 bits

À récupérer l'heure de création spécifiquement, nous pouvons convertir l'horodatage nanoseconde stocké dans le champ CreationTime en un objet time.Time :

d := fi.Sys().(*syscall.Win32FileAttributeData)
cTime := time.Unix(0, d.CreationTime.Nanoseconds())

Il est important de noter que puisque cette fonctionnalité est spécifique à Windows, elle doit être protégée en construisant des contraintes pour éviter les problèmes multiplateformes. Cela peut être fait en utilisant un fichier _windows.go ou la directive //go:build windows.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn