Arquivos de Programas... Program Files... etc etc  XML
Índice dos Fóruns » Java Avançado
Autor Mensagem
Alexandre Gazola
JavaTeenager
[Avatar]

Membro desde: 23/07/2004 14:48:23
Mensagens: 176
Localização: Rio de Janeiro
Offline

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

Alexandre Gazola

Blog: http://alexandregazola.wordpress.com

"Que proveito tem o homem ganhar o mundo inteiro e perder a sua alma?" (Mc. 8:36)

"Buscai, em primeiro lugar, o Reino de Deus e a sua justiça, e todas essas coisas vos serão dadas por acréscimo" (Mt. 6:33)
cv
Moderador
[Avatar]

Membro desde: 04/04/2003 00:32:12
Mensagens: 7842
Localização: São Paulo, SP
Offline

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
[Email] [WWW] [Yahoo!] [MSN] [ICQ]
Filipe Sabella
GUJ Expert

Membro desde: 12/03/2003 11:25:57
Mensagens: 4680
Offline

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?

Former LIPE.
[ICQ]
thingol
Moderador

Membro desde: 29/07/2004 16:10:13
Mensagens: 17543
Offline

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.

This message was edited 2 times. Last update was at 02/08/2005 13:52:34

[WWW]
 
Índice dos Fóruns » Java Avançado
Ir para:   
Powered by JForum 2.1.8 © JForum Team