Pergunta

O que é a melhor maneira de fazer isso? tmpnam () retorna um caminho para um arquivo na raiz da unidade, o que exige privilégios de administrador no Windows Vista, assim que esta não é uma opção.

Foi útil?

Solução

Outras dicas

A variável de ambiente% TEMP% no Windows aponta para o diretório usuários temporário.

Em gerenciado C ++ você pode chamar Path :: GetTempFileName () que lhe dará um arquivo temporário no diretório de usuários temporário (que pode ser encontrado usando Path :: GetTempPath ()). GetTempFileName (), basicamente, apenas dá-lhe um caminho para um arquivo no caminho% TEMP% utilizando um GUID como o nome do arquivo. Você, então, usar esse caminho para criar o arquivo e fazer o que quiser com ele. Você poderia fazer lógica semelhante em qualquer linguagem que tem acesso às variáveis ??de ambiente processos atuais.

Espero que ajude,

Martin.

Você já tentou com as variáveis ??de ambiente TEMP e set TMP para um diretório writable por todos? Para variáveis ??de ambiente mudança no XP (que não estão familiarizados com o Vista), você vai para Propriedades do Sistema, [Avançado] guia, [variáveis ??de ambiente] botão.

Talvez você poderia usar o Win32 método GetTempPath () em kernel32.dll. Esta é envolto em .NET System.IO.Path.GetTempFileName ().

No XP Esta retorna um caminho em C:. \ Documents and Settings \ username \ Local Settings \ Temp \, para que você não deve exigir privilégios de administrador

Se você se preocupa com a interoperabilidade, a página man para tmpnam sugere:

tmpnam página man

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

mkstemp página 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

Mas todos esses sugerem que você preparou seu modelo prefixado pelo conteúdo da variável de ambiente TMP.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top