Olá pessoa, estou uma pequena dúvida, eu preciso abrir um arquivo texto que esta no servidor de uma rede, só que eu não to conseguindo, eu tento abrir o arquivo, mas quando eu uso o flie.exists dá que ele não existe, mas o arquivo ta la, abaixo vou colocar a parte do código:
File file = new File("\\198.168.0.101\\Compartilhada\\config.txt");
if (file.exists()){
stream = new FileInputStream("\\\\198.168.0.101\\Compartilhada\\config.txt");
streamReader = new InputStreamReader(stream);
reader = new BufferedReader(streamReader);
line = reader.readLine();
}
Tambem estou com o mesmo problema! Ja pesquisei em diversas fontes e até agora nada consegui! meu código esta muito parecido com o do Vinny, porém eu só verifico se o diretório existe!!! Se alguém puder ajudar!!!
Afff ta foda, um negocio simples, eu nao intendo pq nao funciona se eu for direto pelo explorer eu digito o caminho e abri normal, agora dentro do java eu nao consigo acessa essa budega.
Ja tentei usando
File file = new File("file:///\\\\198.168.0.101\\Compartilhada\\config.txt");
mas tb nao funcionou, também tentei mapear uma unidade de rede mas sem sucesso
File file = new File("Z:Compartilhada\\config.txt");
tentei tb acessar pelo nome do computador na rede
File file = new File("\\\\SERVIDOR-PC\\Compartilhada\\config.txt");
public static void main(String[] args) throws Exception {
SmbFile file = new SmbFile("smb://172.16.0.3/public/arquivo.txt");
if (file.exists()) {
InputStream stream = file.getInputStream();
Scanner sc = new Scanner(stream);
while (sc.hasNextLine()) {
System.out.println(sc.nextLine());
}
}
}
}
[/code][/quote]
Cara vc acabou de salvar uma vida, hehehehehe, eu tava precisando fazer isso logo para poder colocar o meu sistema pra funcionar em rede na empresa, o sistema ta pronto só faltava ele funcionar em rede, agora deu certo, brigadão!!!
Mas minha dúvida é a mesma que a do Alan, pq não funciona?
Não sei se estou certo mas acredito que seja alguma coisa aver com a JVM do java.
Na verdade, endereços como “\servidor\compartilhamento” não são manipuláveis em Java. Quem consegue “entender” coisas assim são as APIs do Windows (por isso que, às vezes, usar isso resolve, mas só no Windows).
No Linux, o navegador de arquivos (Nautilus, no GNOME) usa endereços como “smb://servidor/compartilhamento”. Se tentássemos usar isso em Java teríamos mais problemas pelo mesmo motivo: são endereços manipulados pelo sistema operacional e suas bibliotecas, não pela JVM.
A solução: usar uma API, toda feita em Java, que acesse os compartilhamentos de forma padronizada (e como é 100% Java, funciona em qualquer sistema operacional exatamente da mesma forma).
Com relação a api padrão, isso sempre foi uma coisa que eu não entendi, o fato de sempre parecer muito windows, se a grande sacada do java é ser multiplataforma, e uma api padrão não funcionar bem em um sistema como linux, acho q faltou justamente a abstração do SO nesse caso!
não quero ressuscitar tópicos, mas como fiz uma pergunta e ninguém me responde, pergunto se na sua aplicação você precisa de alguma função para abrir o arquivo da rede utilizando o samba?
Se tiver o código estou precisando muito, amigo. Valeu.