| Autor |
Mensagem |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 31/12/2009 11:42:22
|
gqferreira
Virtual Machine Man
![[Avatar]](/images/avatar/bcb344196d20becbb66f098d91f83abb.png)
Membro desde: 29/11/2008 17:38:10
Mensagens: 572
Localização: Indaiatuba/SP
Offline
|
Olá pessoal!
Estou tendo um problema com metodos recursivos, fiz um exemplo aqui:
A ideia era que ao encontrar o primeiro arquivo com o tal nome, o metodo fosse 'decapitado' . Pelo que eu sei, quando vc chama o proprio metodo de novo é como se vc tivesse outro igualzinho mas no mesmo codigo, ou seja o mesmo. A diferenca é que com o mesmo codigo ele gera varias instancias do metodo, o que ta acontecendo é que o break mata a instancia atual (nao se auto-chama mais), mas dai ele volta para a antiga e continua... como resolver isso?
|
"Se eu tiver uma maçã e você também tiver uma maçã, e trocarmos de maçãs, cada um ficará com uma maçã. Se eu tiver uma ideia e você também tiver uma ideia, e trocarmos ideias, cada um ficará com duas ideias."
George Bernard Shaw
Gustavo Quirino Ferreira |
|
|
 |
|
|
![[Post New]](/templates/default/images/icon_minipost_new.gif) 31/12/2009 11:54:10
|
gqferreira
Virtual Machine Man
![[Avatar]](/images/avatar/bcb344196d20becbb66f098d91f83abb.png)
Membro desde: 29/11/2008 17:38:10
Mensagens: 572
Localização: Indaiatuba/SP
Offline
|
Solucionei dessa forma:
Mas assim tive que criar uma variavel a mais, se eu nao conseguir de outro jeito acho que vai ficar assim.
|
"Se eu tiver uma maçã e você também tiver uma maçã, e trocarmos de maçãs, cada um ficará com uma maçã. Se eu tiver uma ideia e você também tiver uma ideia, e trocarmos ideias, cada um ficará com duas ideias."
George Bernard Shaw
Gustavo Quirino Ferreira |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 31/12/2009 12:16:34
|
davidbuzatto
Moderador
![[Avatar]](/images/avatar/7ba6d33c373fea56b7258003b16c68e5.jpg)
Membro desde: 07/08/2004 23:47:57
Mensagens: 4013
Localização: Vargem Grande do Sul - SP
Offline
|
Oi Gustavo,
Dei uma melhorada no seu código. Na verdade vc não precisa parar a recursão, um arquivo com o mesmo nome pode existir em diversos subdiretórios.
Dá uma olhada.
[]´s
|
Seja educado. Agradeça quem te ajudou. Não custa nada.
Dúvidas de Java? Utilize o fórum! Não respondo via MP.
"Any fool can write code that a computer can understand. Good programmers write code that humans can understand." (Fowler)
"A vida é um escândalo, e no final dá sempre errado. O que humaniza o homem é o fracasso."
http://davidbuzatto.com.br | GitHub | uHunt | CV Lattes | Last.fm |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 31/12/2009 13:18:58
|
rimarck
Entusiasta Java
Membro desde: 29/05/2008 12:06:04
Mensagens: 15
Localização: São Paulo / Goiânia
Offline
|
|
Rimarck Vieira de Carvalho Junior |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 31/12/2009 13:22:25
|
gqferreira
Virtual Machine Man
![[Avatar]](/images/avatar/bcb344196d20becbb66f098d91f83abb.png)
Membro desde: 29/11/2008 17:38:10
Mensagens: 572
Localização: Indaiatuba/SP
Offline
|
É ... eu fiz assim antes mas o 'lance' de ter um metodo que retorna um List<File> contendo o nome de todos os arquivos encontrados pode dar problema, fiz um teste indicando o diretorio /home, e como vc sabe, existem muitos arquivos e o List ficou tao grande que deu "java heap space"... pau de memoria... entao fiz com que a medida que vou listando vou verificando e crio um list somente com os encontrados, assim nao tenho que armazenar um list gigante com todos os files encontrado no diretorio a ser pesquisado. Mas um criterio de pesquisa que desejo é parar a pesquisa assim que encontrar o primeiro. Sei que pode haver varios com o mesmo nome, mas por exemplo:
Sei que existe somente um arquivo GUSTAVO.txt em /home..., entao nao precisa continuar o massacre do processador tentando achar outro...
|
"Se eu tiver uma maçã e você também tiver uma maçã, e trocarmos de maçãs, cada um ficará com uma maçã. Se eu tiver uma ideia e você também tiver uma ideia, e trocarmos ideias, cada um ficará com duas ideias."
George Bernard Shaw
Gustavo Quirino Ferreira |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 31/12/2009 13:35:35
|
rimarck
Entusiasta Java
Membro desde: 29/05/2008 12:06:04
Mensagens: 15
Localização: São Paulo / Goiânia
Offline
|
Se você quiser so achar 1 arquivo:
|
Rimarck Vieira de Carvalho Junior |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 13/03/2012 19:56:41
|
denirroberto
JavaBaby
![[Avatar]](/images/avatar/ac6e3ad63906082b11888b3138a69018.png)
Membro desde: 19/01/2011 11:09:04
Mensagens: 78
Offline
|
davidbuzatto wrote:Oi Gustavo,
Dei uma melhorada no seu código. Na verdade vc não precisa parar a recursão, um arquivo com o mesmo nome pode existir em diversos subdiretórios.
Dá uma olhada.
[]´s
Maravilha Gustavo excelente dica, mas estou com um problema, consigo apenas listar todos os arquivos a intenção é listar somente as pastas tem como? Tentei tirar o diferente de !f.isDirectory() mas nada feito, consigo diferenciar se é oculto ou não mas não consigo trazer os diretórios e subdiretorios. Ah, tem como criar edentação também, estou usando java web jee 6.
Obrigado
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 23/03/2012 19:29:48
|
denirroberto
JavaBaby
![[Avatar]](/images/avatar/ac6e3ad63906082b11888b3138a69018.png)
Membro desde: 19/01/2011 11:09:04
Mensagens: 78
Offline
|
Bom já que ninguém pode me ajudar resolvi sozinho.
|
|
|
 |
|
|