[SP-pm] Problema com opendir/readdir

claudio at dpreferencial.com.br claudio at dpreferencial.com.br
Mon May 4 16:02:43 PDT 2009


Thomas,

Agradeço muito as suas dicas,
testei o seu código e ele funciona perfeito.. mas...

ainda continuo com o mesmo problema.

 1º - rodo e dá OK
 2º - crio uma pasta no path para onde aponto o opendir
 3º - rodo e dá ERRADO .. retorna o mesmo conteúdo da primeira rodada.

ainda dá retorno com o conteúdo antigo do Diretório..
não atualiza a informação, nem aparece as novas pastas, nem as deletadas 
saem...

Qualquer luz agradeço.

Claudio H.Binaghi
claudio at dpreferencial.com.br
5511 3288.4840






----- Original Message ----- 
From: "Thomas Britis" <thomas at tcnet.com.br>
To: <saopaulo-pm at mail.pm.org>
Sent: Monday, May 04, 2009 7:28 PM
Subject: Re: [SP-pm] Problema com opendir/readdir


1- para testar se é um diretório, utilize -d ao invés de -z.
2- .= concatena ao invés de vc usar $dtudo = $dtudo . $dPasta.

Sem o uso de módulos, eu faria algo assim:

use strict;
use warnings;
# Utilize isso em todos os seus programas.

my $tp = q(/etc);
my $gProj = q(file.xml);
my $dtudo;

opendir (my $dir, $tp) or die ("Erro: $!");
while (my $path = readdir ($dir)) {
if (-d $path) { # Eh um diretorio
if (-e qq($tp/$path/$gProj)) { # O arquivo existe.
$dtudo .= $path, "\n";
}
}

closedir ($dir);

print $dtudo;

Não testei, mas acho que é isso.

claudio at dpreferencial.com.br wrote:
> Perl..soall, boa noite!
>
> Sou iniciante em perl.
>
> Estou com dificuldade em usa os comandos
> opendir/ readdir
>
> Fiz um código bem simples:
>
>       opendir(Dir,$tp) or die("Dir não existe: $!");
>       while($dPasta=readdir(Dir)){
>            my $Dor = $tp . $dPasta;
>            if(-z $Dor){         # testa se é um sub-diretório
>            my $dirtem = $Dor . "/" . $gProj . ".xml";
>               if(-e $dirtem ){
>                  $dtudo  = $dtudo . $dPasta . "\n";
>               }
>            }
>       }
>       closedir(Dir);
>     print "Content-type: text/html\n\n";
>     print $dtudo;
>
> 1º - rodo e dá OK
> 2º - crio uma pasta no path para onde aponto o opendir
> 3º - rodo e dá ERRADO .. retorna o mesmo conteúdo da primeira rodada.
>
> Parece que o resulado fica na memória.
>
> Se alguém puder me dar uma luz,
>
> desde já agradeço a todos.
>
>
> Claudio H.Binaghi
> claudio at dpreferencial.com.br
> 5511 3288.4840
>
> _______________________________________________
> SaoPaulo-pm mailing list
> SaoPaulo-pm at pm.org
> http://mail.pm.org/mailman/listinfo/saopaulo-pm
>
>

-- 
Thomas Storino Britis
TCNet Informatica e Telecomunicacoes LTDA
_______________________________________________
SaoPaulo-pm mailing list
SaoPaulo-pm at pm.org
http://mail.pm.org/mailman/listinfo/saopaulo-pm



-- 
No virus found in this incoming message.
Checked by AVG.
Version: 7.5.557 / Virus Database: 270.12.11/2089 - Release Date: 30/4/2009 
17:53




More information about the SaoPaulo-pm mailing list