Problemas JFileChooser

6 respostas
A

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

6 Respostas

makoto

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("\")).

E

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.

A

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:

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 [code]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??
M

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

A

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 / ???

E

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

Criado 11 de dezembro de 2008
Ultima resposta 11 de dez. de 2008
Respostas 6
Participantes 4