Tratar contraBarra em arquivos (io)

5 respostas
robson.java

Pessoal estou com uma dúvida.

Estou importando dados de um arquivo so que antes da importação verifico se o arquivo existe if (!file.exists()) caso não exista eu gero uma Exception throw new SystemException(mensagem +" "+ path,122083, SystemException.ARQUIVONAOENCONTRADO);.

O problema é quando chaga ao exibir a mensagem na tela um alert ex:(‘Arquivo não encontrado no diretório C:\pasta\arquivo’), ele não exibe a barra, mostra assim (C:pastaarquivo) .

Alguém já passou por isso ou sabe como resolver.

Não quero ter que fazer replace do javascript no jsp, acredito que tenha outro jeito.

Obrigado.

5 Respostas

cassio

File file = new File(“C:/pasta/arquivo”);
System.out.println(file.getPath());

Assim sai do jeito que vc passar no construtor…

robson.java

cassio:
File file = new File(“C:/pasta/arquivo”);
System.out.println(file.getPath());

Assim sai do jeito que vc passar no construtor…

Assim tudo bem mas tente exibir uma mensagem no browser do diretorio de um arquivo. Ex: alert(‘C:\pasta1\pasta2\arquivo.txt’), para exibir uma barra você deve adicionar assim alert(‘C:\pasta1\pasta2\arquivo.txt’), so que estou passando com duas barras e está chegando no jsp com uma.

Até esse momento o atributo path está com duas barras dispatcher.include(request, response);. Após este momento ele aparece no jsp somente com uma barra. isso que não estou conseguindo entender. :cry:

J

Hummm, entendi…o seu arquivo JSP recebe C:\pasta\arquivo e isso está dentro de um alert em javascript?

Daí quando é exibida a mensagem em JavaScript as barras não aparecem?

robson.java

julianostr:
Hummm, entendi…o seu arquivo JSP recebe C:\pasta\arquivo e isso está dentro de um alert em javascript?

Daí quando é exibida a mensagem em JavaScript as barras não aparecem?

isso aí garoto!

robson.java

Bem não é da maneira que eu queria mas tudo bem, dessa maneira funciona.

/**
     * Recebe um path Ex (C:\pasta\pasta\arquivo)
     * e retorna o path com as barras duplicadas
     * Ex: (C:\\pasta\\pasta\\arquivo)
     * @param path
     * @return
     */
public static String replaceBarraDiretorio(String path) {
        
        if(path != null && !path.equals("")){
            String nomeRetorno = "";
            int pos = 0;
            int posAnterior = 0;
            
            int tamanho = 0;
            while(path.indexOf(File.separator) != -1){
                pos = path.indexOf(File.separator);
                nomeRetorno += path.substring(posAnterior, pos) + (File.separator) + (File.separator);
                
                tamanho = path.length();
                path = path.substring(pos + 1, tamanho);
                
            }
            return path = nomeRetorno + path;
        }
        return path;
    }

para testar

public static void main(String[] args) {
        String nome = Util.replaceBarraDiretorio(("C:"+File.separator+"pasta"+File.separator+"pasta"+File.separator+"arquivo"));
        System.out.println(nome);
    }

Valeu.

Criado 20 de julho de 2006
Ultima resposta 20 de jul. de 2006
Respostas 5
Participantes 3