Pregunta

Cual es la mejor manera de hacer esto?tmpnam() devuelve una ruta a un archivo en la raíz de la unidad, que requiere privilegios de administrador en Windows Vista, por lo que esta no es una opción.

¿Fue útil?

Otros consejos

La variable de entorno %TEMP% en Windows apunta al directorio temporal de los usuarios.

En C++ administrado, puede llamar a Path::GetTempFileName() lo que le proporcionará un archivo temporal en el directorio temporal de los usuarios (que se puede encontrar usando Path::GetTempPath() ).GetTempFileName() básicamente solo le brinda una ruta a un archivo en la ruta %TEMP% usando un GUID como nombre de archivo.Luego usa esa ruta para crear el archivo y hacer lo que quiera con él.Podría hacer una lógica similar en cualquier lenguaje que tenga acceso a las variables de entorno de los procesos actuales.

Espero que ayude,

Martín.

¿Ha probado con las variables de entorno TEMP y TMP configuradas en un directorio en el que todos puedan escribir?Para cambiar las variables de entorno en XP (no estoy familiarizado con Vista), vaya a Propiedades del sistema, pestaña [Avanzado], botón [Variables de entorno].

Quizás podría utilizar el método Win32 GetTempPath() en kernel32.dll.Esto está incluido en .NET mediante System.IO.Path.GetTempFileName().

En XP, esto devuelve una ruta en C:\Documentos y configuraciones ombre de usuario\Configuración local emp\, por lo que no debería requerir privilegios de administrador.

Si le interesa la interoperabilidad, la página de manual de tmpnam sugiere:

página de manual de tmpnam

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

página de manual de 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

pero todo esto sugiere que ha preparado su plantilla con el prefijo del contenido de la variable de entorno TMP.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top