Problemas JFileChooser

fala galera blz. usei um JFileChooser para procurar uma imagem no micro.
eu precisaria q o caminho do arquivo tivesse o seguinte formato:

C:\Nova Pasta\nova\arquivo.jpg

tem como eu fazer isso usando algum metodo do JFileChooser ou preciso fazer um metodo na mão mesmo, e c eu tiver q fazer na mão como consigo comparar a \ pq da erro comparar esse caracter;

desde já agradeço

opa, blz andrertd?
seguinte, mesmo que vc use o “/” o java vai encontrar seu arquivo, mas acho que pra conseguir o “\” vai ter que ser no braço, mas pesquise sobre isso. sobre como comparar faça if(string.equals("\")).

olá andrertd

Você quer comparar o caminho que o usuário escolheu com um que você definiu?
O usuário só pode escolher o “arquivo.jpg” no diretório que você definiu acima certo?

Tenta então comparar dessa forma:

String caminhoEsperado = "F:\arquivo.jpg";                
String diretorioPadrao = "F:\";
JFileChooser jfc = new JFileChooser(diretorioPadrao);
if (jfc.showSaveDialog(null) == jfc.APPROVE_OPTION) {
    String path = jfc.getSelectedFile().getAbsoluteFile().getAbsolutePath();
    if (path.equals(caminhoEsperado)) {
        System.out.println("ok, está no caminho esperado.");                         
    }                    
};

O \ é automaticamente transformado em \ quando vai para String.

vou tentar explicar melhor.
O usuario selecionara uma imagem atraves do JFileChooser e me retornara o caminho absoluto da imagem tipo assim C:\Nova Pasta\arquivo.jpg só q eu tenho q mudar o caminho usando 2 barras “\” no lugar de uma… pq o ireport não aceita apenas uma barra e da erro e ficaria assim: C:\Nova Pasta\arquivo.jpg

fiz esse codigo:

[code]
File diretorio = this.selecionar.getSelectedFile();
String caminho = diretorio.getAbsolutePath();

String novoCaminho = “”;

    for (int i = 0; i < caminho.length(); i++) {
        if (caminho.charAt(i) == '

só q o caminho.charAt(i) == ' não aceita essa comparação, está dando erro.. alguem teria um jeito mais facil de fazer essa mudança??) { novoCaminho = novoCaminho + "\"; }else{ novoCaminho = novoCaminho + caminho.charAt(i); } }

só q o caminho.charAt(i) == '\' não aceita essa comparação, está dando erro… alguem teria um jeito mais facil de fazer essa mudança??[/code] não aceita essa comparação, está dando erro… alguem teria um jeito mais facil de fazer essa mudança??) {
novoCaminho = novoCaminho + “”;
}else{
novoCaminho = novoCaminho + caminho.charAt(i);
}
}[/code]

só q o caminho.charAt(i) == '\' não aceita essa comparação, está dando erro… alguem teria um jeito mais facil de fazer essa mudança??

Ou simplesmente usa o ‘/’, que não é caracter de escape e funciona em outros sistemas operacionais, que não o Windows.

posso até usar q da certo mas:

String caminho = "C:\NOVAPASTA\ARQUIVO.JPG"
String novoCaminho = "";   
  
       for (int i = 0; i < caminho.length(); i++) {   
           if (caminho.charAt(i) == '

o  JFileChooser  me retorna o caminho com a barra \ como eu faço para q o  JFileChooser  me retorne com a barra / ???

) {                   
               novoCaminho = novoCaminho + "\";   
           }else{   
               novoCaminho = novoCaminho + caminho.charAt(i);   
           }   
       }  

o JFileChooser me retorna o caminho com a barra \ como eu faço para q o JFileChooser me retorne com a barra / ???

hmm… agora ficou melhor explicado :smiley:

você vai usar então o conteúdo da variável “caminho” em outro programa que não aceita a barra invertida então não é?

Tenta isso aqui:

String caminho = "F:\arquivo.jpg"; caminho = caminho.replace("\", "/");

aquele abraço