C++ Comment vérifier l'heure de dernière modification d'un fichier
Je suis la mise en cache des informations d'un fichier et je veux être en mesure de vérifier périodiquement si le contenu du fichier a été modifié, de sorte que je peux lire le fichier à nouveau pour obtenir le nouveau contenu si nécessaire.
C'est pourquoi je me demandais si il existe un moyen d'obtenir un fichier de l'heure de dernière modification en C++.
- quel est le problème avec ce bon vieux C
stat
appel? - c'est un système unix appel, de sorte qu'il n'est pas multi-plateforme
- c'est pourquoi je n'ai pas de réponse.
Vous devez vous connecter pour publier un commentaire.
Il n'y a pas de langage spécifique à la façon de le faire, cependant le système d'exploitation fournit la fonctionnalité requise. Dans un système unix, la
stat
fonction de ce que vous avez besoin. Il y a un équivalent_stat
fonction pour windows fourni sous Visual Studio.Voici donc le code du travail pour les deux:
Vous pouvez utiliser de boost
last_write_time
pour que. Boost est multi-plateforme.Ici's le tutoriel lien pour que.
Boost a l'avantage que cela fonctionne pour tous les types de noms de fichiers, de sorte qu'il prend soin de non-ASCII noms de fichier.
Veuillez noter qu'il y a certaines limitations:
depuis l'époque de ce post, c++17 a été libéré, et il comprend un système de fichiers de la bibliothèque fondée sur la relance de système de fichiers de la bibliothèque:
https://en.cppreference.com/w/cpp/experimental/fs
qui comprend un moyen d'obtenir la date de dernière modification:
https://en.cppreference.com/w/cpp/filesystem/last_write_time