Olá, amigos. Tenho um problema.
Acontece que eu preciso ler um arquivo na pasta system32, estou utilizando o seguinte código:
[code]public String getLocalArquivos (){
String sRetorno = "";
if ( utilizadll ){
FileReader arq;
try{
arq = new FileReader("C:/WINDOWS/system32/Arq.ini");
if ( arq == null ) {
JOptionPane.showMessageDialog( null, "Arquivo não encontrado!" );
return "";
}
BufferedReader bufferedReader = new BufferedReader( arq );
String tmp = null;
while ( ( tmp = bufferedReader.readLine() ) != null ) {
if ( tmp.length() >= 8 && tmp.substring( 0, 4 ).equals( "Path" ) ){
sRetorno = tmp.substring( 5 ).trim();
break;
}
else continue;
}
bufferedReader.close();
}
catch(IOException e){
JOptionPane.showMessageDialog( null, "Erro ao buscar endereço do arquivo: " + e.toString() );
e.printStackTrace();
}
catch(Exception e){
JOptionPane.showMessageDialog( null, "Erro ao buscar endereço do arquivo: " + e.toString() );
e.printStackTrace();
}
}
return sRetorno;
}[/code]
Mas eu não queria ter que utilizar o endereço
C:\WINDOWS\system32\Arq.ini
para ter acesso ao mesmo. Tentei utilizar a variável de ambiente windir, da seguinte forma abaixo, mas não localizou o arquivo.
%windir%\system32\Arq.ini
Mas… pq quero fazer isso? Pois pode acontecer que o windows não esteja instalado em C:… e depois que eu compilar este código não poderei alterá-lo tão cedo.
Alguém sabe como posso fazer isso?
Desde já agradeço.
O PROBLEMA FOI RESOLVIDO DA SEGUINTE FORMA:
Existe uma função do Java que retorna o valor da variável de ambiente que eu quiser, então utilizei
String Sysvar = System.getenv("windir");
e resolvi meu problema.
Abraço!