Arquivos de Programas... Program Files... etc etc

3 respostas
Alexandre_Gazola

Oi pessoal, blz??

File f = new File(“C:\Arquivos de Programas\teste.txt”);

Esse código me cria um arquivo no diretório especificado.
No entanto, se a minha aplicação mudar p/ um windows em outra lingua, digamos, em ingles, esse código não mais funcionará, pois não existirá o diretório “C:\Arquivos de Programas”, existirá “C:\Program Files”…

Alguém sabe como usar esse diretório Arquivos de Programas de maneira genérica ao especificar o path p/ um arquivo??

obrigado

3 Respostas

cv1

Voce pode usar a variavel %ProgramFiles% no ambiente do Windows (testei no XP, nao sei quanto aos outros). Nao funciona em nenhum outro sistema operacional (Linux, MacOS, etc), no entanto. Lembre-se de oferecer ao usuario a opcao de escolher o diretorio, ou, melhor ainda, use um software instalador ja pronto - a galera pode te sugerir alguns aqui :wink:

_fs

Qual o objetivo desse arquivo? É para instalação como o cv deduziu? Ou é para configuração do sistema? Tem certeza que não basta pegar o caminho a partir de onde o software está rodando?

T

a) Se estiver usando o JDK 5.0 ou superior, e o Windows 2000 ou superior, é possível obter via System.getenv (“ProgramFiles”)
b) Se estiver usando o JDK 1.4 ou inferior, mas o Windows 2000 ou superior, você precisa usar um script que passe esse valor via parâmetro -D para seu programa Java

por exemplo, java “-DProgramFiles=%PROGRAMFILES%” -cp . SuaClasse
ou java “-DProgramFiles=%PROGRAMFILES%” -jar SeuJar.jar

e no programa, pegue o valor com System.getProperty (“ProgramFiles”)

c) Se for o Windows NT já não sei, mas no 95/98/ME esse truque de pegar a variável de ambiente não funciona, se não me engano.

DICA - em um sistema que escrevi tive de posicionar os arquivos relativamente ao diretório de instalação. Usei um instalador normal (Installshield, não recomendo a versão muito velha que usei - 6.12 - mas é porque existia uma cópia oficial dessa versão aqui na firma. Aí o instalador criou um shortcut para o programa, que passava o diretório de instalação como um parâmetro -D para o Java. Aí era só pegar o valor (com System.getProperty) nos pontos do programa que requeriam o valor do diretório.

Criado 2 de agosto de 2005
Ultima resposta 2 de ago. de 2005
Respostas 3
Participantes 4