Question

Quelle est la meilleure façon de faire cela? tmpnam () renvoie un chemin vers un fichier à la racine du lecteur, qui nécessite des privilèges d'administrateur sur Windows Vista. Ce n'est donc pas une option.

Était-ce utile?

La solution

GetTempPath et GetTempFileName devrait fonctionner.

Autres conseils

La variable d'environnement% TEMP% sous Windows pointe vers le répertoire temporaire des utilisateurs.

En C ++ géré, vous pouvez appeler Path :: GetTempFileName () qui vous donnera un fichier temporaire dans le répertoire temporaire de l'utilisateur (qui peut être trouvé à l'aide de Path :: GetTempPath ()). GetTempFileName () vous donne simplement un chemin vers un fichier dans le chemin% TEMP% en utilisant un GUID comme nom de fichier. Vous utilisez ensuite ce chemin pour créer le fichier et en faire ce que vous voulez. Vous pouvez utiliser une logique similaire dans n’importe quel langage ayant accès aux variables d’environnement des processus actuels.

J'espère que cela vous aidera,

Martin.

Avez-vous essayé avec les variables d’environnement TEMP et TMP définies dans un répertoire accessible en écriture pour tous? Pour modifier les variables d'environnement dans XP (non familier avec Vista), accédez à Propriétés système, onglet [Avancé], bouton [Variables d'environnement].

Peut-être pourriez-vous utiliser la méthode Win32 GetTempPath () dans kernel32.dll. Ceci est encapsulé dans .NET par System.IO.Path.GetTempFileName ().

Sous XP, cela renvoie un chemin dans C: \ Documents and Settings \ nom d'utilisateur \ Paramètres locaux \ Temp \, de sorte que vous ne devriez pas avoir besoin de privilèges administrateur.

Si vous vous souciez de l'interopérabilité, la page de manuel de tmpnam suggère:

Page de manuel de tmpnam

BUGS
       Never use this function. Use mkstemp(3) instead.

Page de manuel mkstemp

SYNOPSIS
       #include <stdlib.h>

       int mkstemp(char *template);

DESCRIPTION
       The mkstemp() function generates a unique temporary file name from template.  The last six characters of template must be
       XXXXXX and these are replaced with a string that makes the filename unique. The file is then created with mode read/write

mais tout cela suggère que vous avez préparé votre modèle préfixé par le contenu de la variable d’environnement TMP.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top