Eae galera!
Estou com um probleminha…
preciso verificar se um arquivo de imagem existe…
para isso crio um file e passo o caminho, só que o caminho é pego
de um arquivo de properties onde o cliente tem acesso para customizações…
e quando a imagem for pega por um link direto no windows ocorre o meu problema…
vamos dizer que o link seria :
\servidor\pasta da imagem\problema.jpg
quando pego este caminho do meu properties ele vem assim:
\servidorpasta da imagemproblema.jpg
alguem sabe o que pode ser feito neste caso?
Utilize o caminho assim :
\servidor\pasta da imagem\problema.jpg
O java utiliza a barra simples para introdução de caracteres especiais, para fazer a saida de uma string com uma barra é preciso fazer assim “\”.
[]'s
pois eh… só que é o cliente que digita este caminho…
e de usuário só deus sabe o que vem…
hehehehe
Faz assim, antes de transformar ele em file, utiliza um replace e transforma a \ para File.separator, que o padrao do file e server em qualquer sistema operacional, acho que assim melhora a situação
Então vc terá que fazer a validação do caminho!
Vc pode usar o método do File, “exists()” para ver se o caminho está certo!
Caso não, verifique se possui barras duplas, senão insira na string no lugar das barras um File.separator que é independente de SO.
[]'s
problems…
o próprio método get properties pega a string…
quando eu recebo ela já vem sem as barras…
e sobrescrever o método alteraria a estrutura…
É colega, você tem um problema dos bons.
A gambiarra que eu sugeriria é que você criasse uma sintaxe própria de caminho e especificasse ela dentro do properties como um comentário para que o usuário soubesse como escrever o caminho corretamente.
Por exemplo, manda os imbecil digitar / no lugar de . Assim ficaria: //servidor/pasta da imagem/problema.jpg
Daí tu cria um método que converta todas as barras em File.separator =)
Meio gambiarroso mas resolve =)
(O Windows (leia-se MS-DOS) é o único sistema operacional do mundo que usa barra invertida como file separator ¬¬)
Isso só é válido para as strings escritas dentro do código fonte, entre aspas.
Strings lidas de arquivos, caixas de texto ou outras fontes não são sujeitas a sequencias de escape.