Interromper a variável de ambiente% tmp% do Windows usando o nome de arquivo curto

3

Eu tenho um aplicativo C ++ que está usando a variável %tmp% (do Função GetTempPath () ). Infelizmente, há um erro em que ele não pode lidar com o que pode aparecer no caminho do diretório temporário local do usuário se ele for gerado usando nomes de arquivo curtos.

O que eu gostaria de fazer é fazer com que a variável de ambiente %tmp% não inclua um nome de arquivo curto, se isso for possível.

Na minha pesquisa, encontrei os seguintes comandos:

fsutil.exe 8dot3name set C: 1 
fsutil.exe 8dot3name strip /s /v C:\

Eu executei ambos e o primeiro comando desativou com sucesso os nomes dos arquivos curtos. O segundo comando, no entanto, falhou por aproximadamente 2000 nomes de arquivo curtos existentes, já que eles já são referenciados no registro. Tudo bem, mas eu realmente só me importo com essa variável de ambiente, então estava me perguntando se havia uma maneira que eu poderia forçar a remoção desse nome de arquivo curto, ou se, como eu tenho a sensação de que seria, isso não é aconselhável, se existe uma maneira que eu possa forçar a variável de ambiente para usar o nome de arquivo longo? Eu entendo que a variável %tmp% usa a variável %userprofile% , e que esta última é realmente a variável problemática, então eu entendo que é aquela que eu vou precisar olhar ..?

Qualquer ajuda seria muito recomendada.

Felicidades!

    
por Raiden616 25.04.2014 / 15:20

1 resposta

0

Talvez eu esteja muito atrasado para você, mas talvez ajude alguém:

a função GetLongPathName () deve converter o nome curto em um longo.

    
por 29.04.2015 / 16:40