Comment trouver la taille de tous les fichiers situés dans un dossier?
Est-il de l'API dans c++ pour obtenir la taille d'un dossier spécifié?
Si non, comment puis-je obtenir la taille totale d'un dossier, y compris tous les sous-dossiers et fichiers?
source d'informationauteur CodeRider
Vous devez vous connecter pour publier un commentaire.
Si vous utilisez MSVC++ vous avez
<système de fichiers>
", comme le standard C++".Mais l'utilisation de boost ou de MSVC - les deux sont des "C++ pur".
Si vous ne souhaitez pas utiliser le boost, et seul le C++ std:: bibliothèque de cette réponse est assez proche. Comme vous pouvez le voir ici, il est un système de fichiers de la Bibliothèque de Proposition (Révision 4). Ici, vous pouvez lire:
Pour illustrer l'utilisation, j'ai adapté la réponse de @Nayana Adassuriya , avec de très légères modifications (OK, il a oublié d'initialiser une variable, et que j'utilise
unsigned long long
et le plus important était d'utiliser:path filePath(complete (dirIte->path(), folderPath));
pour restaurer le chemin d'accès complet avant l'appel à d'autres fonctions). J'ai testé et cela fonctionne bien sous windows 7.Comment agit de laisser les OS le faire pour vous:
Vous pouvez utiliser l'amplification de cette façon. Vous pouvez essayer de l'optimiser certains plus profonde.
La taille des fichiers dans un dossier
Jetez un oeil à ce lien
Pour plus de détails s'il vous Plaît Cliquez sur Ici
Les fonctions de système de fichiers sont une partie intégrante de chaque système d'exploitation, écrits pour la plupart en C et assembleur, pas du C++, chaque bibliothèque C++ pour la mise en œuvre de ce sont, d'une manière ou d'une autre un wrapper de ces fonctions. La prise de compter sur l'effort et si vous n'utilisez pas votre mise en œuvre dans les différents OS, peut-être une bonne idée pour utiliser ces fonctions directement et d'économiser des coûts et de temps.
Meilleures salutations.
J'ai mon des types de fichier de définition avec:
et le code est:
Il utilise UNICODE et retourne a échoué dirs si vous voulez.
Pour appeler:
Mais ne passent jamais
size
Vous pouvez utiliser "boost::filesystem"
Essayez d'utiliser GetFileSizeEx fonction. Voici certains exemples de code pour cela. Vous avez besoin pour obtenir la taille de l'union LARGE_INTEGER.