Manipular String

5 respostas
B

Pessoal,

Bom dia, preciso de uma ajuda, como faço para obter uma substring assim:

String completa -> “c://users//marcelo//desktop//meuprograma.exe”

A substring que preciso “desktop//meuprograma.exe”

Não estou sabendo como fazer isso.

com o lastindexof("//") eu consigo o final… mas como faço para pegar o diretório anterior ?

5 Respostas

yurifw

o melhor jeito de usar Strings que representam diretorios é usar a classe File.

vc pode fazer assim:

File arquivo = new File( "c://users//marcelo//desktop//meuprograma.exe" ); //perceba que criar uma instancia de File n cria um novo arquivo, e sim uma referencia a este arquivo String diretorioAnterior = arquivo.getParent();

Rodrigo_Sasaki

mas qual exatamente é o padrão que você quer?

  • Quer o executável com o nome do último diretório?
  • Tudo para frente do “/destkop”?

Ou até algo diferente disso tudo. É isso que você precisa definir primeiro.

B

Rodrigo Sasaki:
mas qual exatamente é o padrão que você quer?

  • Quer o executável com o nome do último diretório?
  • Tudo para frente do “/destkop”?

Ou até algo diferente disso tudo. É isso que você precisa definir primeiro.

Preciso do executável com o último diretório, é para um menu de histórico dos últimos arquivos abertos.

Vou testar a dica do colega ali em cima, acho que servirá para o que eu preciso.

yurifw

aquela ali vai pegar o caminho inteiro desde a raiz até o diretorio anterior ao arquivo q vc instanciou, se quiser desse jeito q vc falou vai ter q alterar algumas coisas. Tem o metodo getName tb que te retorna só o nome do arquivo, da uma lida na documentação q eu acredito que esta classe resolva seu problema

B

Pessoal,

Agradeço a ajuda ficou assim:

//Retorna nome
        public String getNomeMenu() throws IOException {
                File arquivo = new File( strCaminho );   
                String strArqTemp =  arquivo.getParent().substring(arquivo.getParent().lastIndexOf("\\") + 1);
                return ".." + strArqTemp + "\\" +arquivo.getName();
        }

Muito obrigado

Criado 14 de agosto de 2013
Ultima resposta 14 de ago. de 2013
Respostas 5
Participantes 3