Endereço de rede ou local?

2 respostas
brucsantos

[color=darkblue]Boa noite!
Pessoal, gostaria de saber se alguem sabe como diferenciar se um endereço e de rede ou local?
Bom vou explicar, tenho uma aplicação onde faço a configuração de dois campos: O campo repositorio e o de chegada. Bom tenho um impressora que quando e scaneado um arquivo ela me envia um aviso “um arquivo foi enviado para a pasta de chegada”, onde ele e salvo na mesma. depois disso tenho um “robo” que pega o arquivo da pasta de chegada e transfere para a de repositorio… enfim… quem configura essas pastas é o usuario pela web. so que esses dois campos não podem ser de rede se não vira bagunça entende? Eu fiz da seguinte forma… funciona, mais acho que não ficou muito… digamos, apresentavel. Segue codigo:
[/color]

public static boolean isLocal(File file) {

boolean local = true;

try {

 File canonical = file.getCanonocalPath();

 if (canonical != null && canonical.getParent() != null) {

    local =  isLocal(canonical.getCanonicalPath());
  }
 return local;
} catch (IOExeption e) {

   Logger.getLogger().warning(e +" This especificat file isn't local");
   return false;

}

[color=darkblue]Então esse e o codigo… quando o sistema chega no “\” da rede, e lançado um IOExeption e quando e local ele retorna null, como diz no java doc. Isso ai em cima funciona… mais não esta muito “elegante”. Será que alguém sabe como fazer isso de uma forma mais apresentável?
Obrigado e desde já agradeço a atenção de todos.
Bru!
[/color]

2 Respostas

khaoz

Lendo a API do File, principalmente na parte onde ele fala sobre prefixos eu penso se um startsWith("") no path do arquivo não ajudaria.

No linux considera a “/” o root e sem barra diretórios relativos
No windows “<letra>:” é root e “//” caminho UNC

Esse é o básico.
Depois disso tem os smb://, file:/c:, file://// … (depende da plataforma, protocolo de acesso, eu viajando legal XD )
Tem também esse cara falando de bugs envolvendo paths no formato UNC.

Você pode também exercitar seu cérebro com regex.

brucsantos

Então mais esse basico ficaria muito ruim visualmente, não quero encher de if’s minha aplicação somente o necessario se e que vc me entende… Queria uma forma mais dinamica pois não sei onde a aplicação ira rodar.
Se alguem tiver outra ideia… Vai ajudar bastante!
Obrigado

Criado 5 de novembro de 2008
Ultima resposta 6 de nov. de 2008
Respostas 2
Participantes 2