Boa tarde, estou com o seguinte problema…
Toda vez que eu tento verificar se algum arquivo existe ele retorna que não existe (Mesmo existindo).
Fiz uma função para ver se o arquivo existe, ele verifica em dois diretórios caso seja (x32 ou x64).
Eu inserindo os diretórios manualmente em alguns programas funciona… (isso que é estranho, eu acho que é algum tipo de permissão).
Exemplo:
verificaPrograma(“Steam”,“C:\Program Files\Steam\Steam.exe”,“C:\Program Files (x86)\Steam\Steam.exe”);
Mas, eu queria utilizar por exemplo a variável de ambiente do windows como: %ProgramFiles% | %ProgramFiles(x86)% | %username% | que iria “Automatizar”, caso eu buscasse por um usuário.
Exemplo:
%homedrive%\Users%username%\
verifica1Programa(“Discord”,"%homedrive%\Users\%username%\AppData\Local\Discord\app-0.0.301\Discord.exe");
nesse caso acima só possuí esse tipo de diretório, então faço uma função pra buscar somente 1 diretório, e passo essas variáveis de ambiente para que possa executar o programa em qualquer computador windows.
public void verificaPrograma(String nomePrograma, String diretorioPrograma1, String diretorioPrograma2){
File programaT1 = new File(diretorioPrograma1);
File programaT2 = new File(diretorioPrograma2);
if(!programaT2.exists()){ // se não existir arquivo avança para o outro if
if(!programaT1.exists()){ // se não existir arquivo instala programa
instalaPrograma(nomePrograma);
}else{//se arquivo existir
JOptionPane.showMessageDialog(null,"O Software já foi instalado =D");
}
}
Código para a função instalar:
public void instalaPrograma(String nomePrograma){
try {
java.awt.Desktop.getDesktop().open( new File( “resources/”+nomePrograma+".exe"));//pasta dentro do projeto do netBeans
} catch (IOException ex) {
JOptionPane.showMessageDialog(null,“O software não foi localizado.”);
Logger.getLogger(Tela.class.getName()).log(Level.SEVERE, null, ex);
}
}
Desde já, agradeço!!!