2009-11-16 4 views
2

Je suis à la recherche pour les bibliothèques standard en C++ qui me permettent de faire des choses comme:Est-ce que C++ ont des bibliothèques standard for Common File Utilities

  1. Traverse un répertoire récursive
  2. recherche de fichiers dans un répertoire
  3. Vérifiez si le fichier existe, si le dossier existe ou non et créez-le s'il n'est pas présent.
  4. Vérifiez qu'une hiérarchie de dossiers existe ou créez-la si elle n'est pas trouvée. Équivalent de mkdir -p
  5. Décompression/Compresser un fichier
  6. Vérification du CRC/Hash du fichier
  7. de copie de fichier, supprimer le fichier, supprimer le dossier, dossier de copie récursive
  8. exécutant une commande de système et la lecture de sa console sortie dans le programme.

Il semble que les langages de script et Java supportent bien ce genre de problèmes. Mais, je ne suis pas en mesure de trouver il existe des moyens standard de faire cela en C++.

Répondre

8

Non, mais si vous voulez une bonne implémentation de la bibliothèque, vous pouvez regarder dans Boost.Filesystem; il a largement utilisé, des installations multiplateformes pour faire la plupart de ces choses.

+0

J'ai entendu parler de celui-ci, mais ensuite je vais devoir installer toute la bibliothèque Boost, qui est énorme, juste pour cette chose. N'est-ce pas? Ou existe-t-il un moyen d'installer uniquement les éléments requis de Boost? – user855

+0

Etes-vous inquiet de l'espace libre sur votre disque dur, ou autre chose? (L'espace HD est bon marché.) Juste parce que vous utilisez un en-tête de boost ne signifie pas que votre programme final doit savoir ou se soucier du reste. La plupart des bibliothèques boost sont en-tête seulement et celles-ci sont aussi faciles à utiliser qu'un simple #include. –

+0

Je n'ai jamais essayé d'utiliser une partie de Boost, mais il suffit d'avoir les librairies sur l'ordinateur sur lequel vous développez. Vous n'êtes pas obligé de distribuer l'ensemble du paquet avec votre application. Les bibliothèques Boost n'ajoutent pas grand chose à la taille de vos binaires réels puisque seul ce que vous utilisez est récupéré lors de la construction. –

Questions connexes