Domanda

Qual è il modo migliore di fare questo?tmpnam() restituisce un percorso di un file nella directory principale dell'unità, che richiede i privilegi di amministratore su Windows Vista, quindi questo non è un opzione.

È stato utile?

Soluzione

GetTempPath e GetTempFileName dovrebbe funzionare.

Altri suggerimenti

La variabile di ambiente %TEMP% su Windows punti per gli utenti della directory temp.

In managed C++ è possibile chiamare Percorso::GetTempFileName (), che vi darà un file temporaneo nella cartella utenti della directory temp (che può essere trovato utilizzando il Percorso::GetTempPath() ).GetTempFileName() in pratica ti da solo un percorso di un file nella cartella %TEMP% percorso utilizzando un GUID, come il nome del file.È quindi possibile utilizzare il percorso per creare il file e fare quello che vuoi con esso.Si potrebbe fare una logica simile in qualsiasi lingua che ha accesso alla corrente processi di variabili di ambiente.

Speranza che aiuta,

Martin.

Hai provato con le variabili di ambiente TEMP e TMP impostare una directory scrivibile da tutti?Per modificare le variabili di ambiente in XP (che non hanno familiarità con Vista), vai in Proprietà del Sistema, scheda [Avanzate], [Variabili di Ambiente] pulsante.

Forse si potrebbe utilizzare il Win32 metodo GetTempPath() in kernel32.dll.Questo è avvolto .NET System.IO.Percorso.GetTempFileName().

Su XP questo restituisce un percorso in C:\Documents and Settings ome utente\Impostazioni Locali emp\, pertanto, non richiedono i privilegi di amministratore.

Se ti interessa l'interoperabilità, la pagina man per tmpnam suggerisce:

tmpnam pagina man

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

mkstemp pagina man

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

ma tutti questi suggeriscono che avete preparato il vostro modello prefissato dal contenuto della variabile di ambiente TMP.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top