Hice un script pero no me funciona, algo hice mal. Yo estoy acostumbrado a codear en PHP y hacer retornos recursivos dentro de las mismas funciones autollamándose pero al parecer acá no funciona:
Using perl Syntax Highlighting
- print c_dir($ENV{TMP})." archivos.\n";
- sub c_dir{
- $dir = shift;
- opendir(TEMP ,$dir) or return 0;
- @ar = readdir(TEMP) or return 0;
- closedir(TEMP);
- $n = 0;
- foreach my $f (@ar){
- unless(($f eq '.') || ($f eq '..')){
- if(-d $ENV{TMP}.'\\'.$f){
- print "[dir]".$f."\n";
- $n = $n + c_dir($ENV{TMP}.'\\'.$f.'\\');
- }else{
- print "[file]".$f."\n";
- $n++;
- }
- }
- }
- return $n;
- }
Coloreado en 0.003 segundos, usando GeSHi 1.0.8.4
El problema es que el primer directorio detectado está vacío y no sé si eso es lo que me da problemas o el hecho de hacer autollamadas a la misma función.
Using bash Syntax Highlighting
- [dir]Acrobat Distiller 8
- 0 archivos.
- Presione una tecla para continuar . . .
Coloreado en 0.002 segundos, usando GeSHi 1.0.8.4
Ahora la otra pregunta... ¿es más eficiente eliminar archivo por archivo y luego cada directorio? ¿o habrá alguna función nativa en la versión Strawberry?