Você pode usar uma de duas coisas:
- Se a sua aplicação pode ser iniciada pelo usuário (em vez de ser um serviço) e você sabe de antemão que servidor será acessado pela sua aplicação, então você pode acessar manualmente o tal arquivo usando um new File mesmo, mas você precisa antes de iniciar sua aplicação de mapear um acesso para o tal arquivo que deve ser acessado com senha.
Digamos que o arquivo x.jpg fique no servidor e share \serv\imgs , diretório abc\def.
Então o jeito de você acessar o arquivo seria: “\serv\imgs\abc\def\x.jpg”
Para você poder acessar o tal arquivo, o programa deve poder ter um acesso com usuário e senha. Nesse caso, você pode abrir uma linha de comando antes de iniciar o programa, e manualmente tentar fazer o seguinte:
net use /user:dominio\usuario \serv\imgs * /persistent:yes
Ele irá solicitar a senha, e então, se você conseguir efetuar corretamente o “use”, você pode iniciar seu programa sem que seja necessário fornecer novamente o usuário e a senha.
Acho que dá para passar a senha na linha de comando se você trocar o “*” pela senha, mas não tenho certeza se funciona.
- A outra alternativa é usar o jcifs, mas não sei se funciona direito para sua instalação de rede.