Boa tarde
gostaria de saber se tem alguma maneira de criar um sistema para que rode em qualquer unidade de disco,
tipo em um pc nao existe a unidade c: só existe a h: como faço pra nao deixar estático no meu sistema o “C:/…” tem algum codigo pra colocar ali no lugar do C: ??
obrigado desde já
Há várias formas de se fazer isso, mas nenhuma pegará exatamente o nome do disco principal. Você pode fazer o seguinte: pegar o diretório do usuário e cortar a string, deixando apenas 3 caracteres. C = 1 : = 2 \ = 3, por exemplo. Pesquise por:
getProperty("user.home");
achei esse ex na net.
[code]File pasta = new File(System.getProperty(“user.home”));
pasta = new File(pasta, “pastaapp”);
System.out.println("pasta: " + pasta.getAbsolutePath()); [/code]
ele me mostra o seguinte resultado:
pasta: C:\Users\Wagner Vielmond\pastaapp
agora acho que fica facil, só jogar em uma variavel isso, dai nao preciso deixá-lo estatico.
será que tem alguma maneira de pegar apenas o c:?
o que vc acha?
resolvi da seguinte forma
nos métodos de conexao com o banco de dados, ao invés de colocar a conhecida linha
String url = "jdbc:firebirdsql:127.0.0.1:C:\gerenciador_extratos\db\DB.GDB";
coloquei assim
//pega a unidade instalada
File pasta = new File(System.getProperty("user.home"));
String[] disco = pasta.toString().split(":");
aqui pega apenas a unidade de disco que vc instalou o seu programa
agora eu coloco a linha assim:
String url = "jdbc:firebirdsql:"+ip+":"+disco[0]+":\gerenciador_extratos\db\DB.GDB";
sendo assim a variavel disco recebe a letra da unidade do programa que foi instalado o sistema.
valeu!