J'écris une fonction en C++ qui crée un répertoire temporaire. Une telle fonction devrait être aussi portable que possible, par ex. il devrait fonctionner sous linux, mac et win32. Comment puis-je y parvenir?Comment créer un répertoire temporaire en C++?
Répondre
mkdtemp(char *template)
http://www.cl.cam.ac.uk/cgi-bin/manpage?3+mkdtemp
crée un répertoire temporaire.
J'ai suivi votre lien vers la documentation. Il décrit seulement comment créer un fichier temporaire. Ce qui a été demandé est comment créer un répertoire temporaire. –
@ ErikSjölund vous avez raison, j'ai lié la mauvaise commande. –
Vérifiez la mkdtemp
fonction here.
Cela n'existe pas sur Windows, autant que je sache. :( –
Je suppose que vous êtes écrivain ... suppression ... –
il n'y a pas de manière indépendante de la plate-forme pour le faire en standard c/C++, utilisez GetTempPath et GetTempFileName sur Windows – Kane
Il n'existe aucune fonction standard pour cela, vous devrez donc compiler différentes implémentations pour chaque plate-forme que vous ciblez. Sur Windows, par exemple, vous devez utiliser le répertoire temp, qui peut être obtenu par un appel à GetTempPath().
La bibliothèque Boost du système de fichiers fournit des fonctions de répertoire indépendantes de la plate-forme. Cela augmentera un peu la taille de votre programme, mais l'utilisation de Boost est souvent meilleure (et souvent plus facile) que de lancer la vôtre.
http://www.boost.org/doc/libs/1_43_0/libs/filesystem/doc/index.htm
Je ne veux pas introduire de dépendance sur boost juste pour cette. – Gatis
version 3 de la bibliothèque Boost fournit des systèmes de fichiers fonction unique_path()
pour générer un nom de chemin approprié pour la création d'un fichier ou un répertoire temporaire.
using namespace boost::filesystem;
path ph = unique_path();
create_directories(ph);
- 1. Comment créer un fichier texte temporaire en C++?
- 2. Opération temporaire dans un répertoire temporaire dans un script shell
- 3. comment créer un sous-répertoire dans un répertoire
- 4. Comment renommer un dossier/répertoire en C#?
- 5. Comment créer un fichier dans un répertoire différent en C++?
- 6. créer un fichier temporaire en android
- 7. Comment créer un répertoire temporaire et obtenir le chemin/nom de fichier en Python
- 8. En Perl, comment créer en toute sécurité un FIFO temporaire?
- 9. Comment créer (et supprimer) automatiquement un répertoire temporaire dans un Makefile?
- 10. Comment créer un répertoire en utilisant StreamWriter?
- 11. Comment créer un fichier temporaire nommé sur Windows en Python?
- 12. Comment créer un fichier std :: ofstream dans un fichier temporaire?
- 13. Comment créer un fichier .txt dans un dossier Internet temporaire?
- 14. Créer un répertoire + sous-répertoires
- 15. WiX - comment créer un sous-répertoire bin?
- 16. Comment puis-je créer un répertoire dans le lecteur C: \?
- 17. .htaccess - créer un répertoire
- 18. Sharepoint .NET Créer un répertoire
- 19. Impossible de créer un fichier temporaire
- 20. Dézipper un répertoire en C++
- 21. Comment créer un nom de fichier temporaire dans Erlang?
- 22. Spécifiez le répertoire temporaire dans .jnlp
- 23. Comment obtenir le répertoire temporaire ASP.NET par programme?
- 24. Créer un répertoire et copier un fichier
- 25. Comment créer un répertoire sur un serveur FTP en utilisant C#?
- 26. Comment créer le fichier texte dans le répertoire temporaire d'une application dans Iphone
- 27. Comment créer un répertoire virtuel en utilisant MSBuild Script?
- 28. Comment créer un répertoire immuable dans svn?
- 29. Comment créer un répertoire/dossier par php?
- 30. Comment puis-je créer un répertoire dans un makefile
standard C++ n'a pas de fonctions de manipulation de répertoire. –
La norme POSIX a une définition. Tous les systèmes d'exploitation modernes ont une couche de conformité POSIX (y compris Windows). La famille de fonctions mktemp() est donc ce que vous cherchez. Mais attention, c'est une faille de sécurité pour créer un répertoire temporaire puis y placer des fichiers. Il est plus sûr de créer des descripteurs de fichiers directement. –
Qu'en est-il de getenv() passant "TMP"? – Gatis