Strings

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.