substituíndo "\" com replaceall()

8 respostas
debug

Boa noite!

Pessoal tenho um caminho de um diretório porém preciso inverter a barra “” para “/”
tentei usar o comando replaceall() mas infelizmente não esta funcionando com apenas o caracter “”

String path = “C:\teste.pdf”;
path = path.replaceAll("", “/”);

Alguem tem alguma sugestao?

tks!

8 Respostas

M

Tenta isso

path = path.replaceAll("\", "/");
debug

ja tentei mas da erro

Exception in thread “AWT-EventQueue-0” java.util.regex.PatternSyntaxException: Unexpected internal error near index 1
\

T
String path = "C:\teste.pdf";
path = path.replace("\", "/");
debug

Bom assim funciona mas quando eu for gravar na tabela o caminho do arquivo não vai ficar com \

so para explicar melhor image que na minhata tabela tenha o diretorio dos arquivos, mas quando tento abrir o arquivo
conforme abaixo:

String path = "C:\teste.pdf"; File pdf = new File(path); Desktop.getDesktop().open(pdf);

Nao abre o file e percebi se estiver com a barra envertida funciona.

tem outra sugestão?
:wink:

T

Amigo, você está fazendo um pouco de confusão.

Para representar um \ em uma string Java, deve-se sempre duplicá-la:

String nome = "c:\teste.pdf";
System.out.println (nome); // imprime c:\teste.pdf

O compilador não reclamou de “c:\teste.pdf”, mas o nome do arquivo na verdade ficou assim:

c: + TAB + este.pdf

já que \t é a representação Java do caracter TAB.

Então você não conseguiu abrir o arquivo c:\teste.pdf - ele está tentando achar um arquivo c: + TAB + este.pdf que não deve existir no seu disco.

jvlouvem

De uma olhada nesse topico http://www.guj.com.br/posts/list/117396.java#635575l
talvez ajude :slight_smile:

Abraços

debug

tks pelas dicas :slight_smile:

entendi…
mas no meu caso como ficaria?

como eu vou localizar o arquivo num diretorio para dar um get no caminho e salvar no banco, como posso salvar a “” para nao ter esse problema?

T

No banco é para ficar gravado com um \ só.

É só quando você especifica manualmente, em uma constante string, que as \ têm de ser duplicadas.

A razão é que dentro de uma string Java ou C, o caracter \ indica que o próximo caracter é especial - por exemplo, \t = TAB, \n = LF, \r = CR.
Em particular, se precisar pôr um \ sozinho, então você tem de duplicar o : “\”

Criado 7 de junho de 2009
Ultima resposta 9 de jun. de 2009
Respostas 8
Participantes 4