Perl实现遍历目录例子_perl

环境为windos,需要注意的两点:

1、默认activePerl下的采用的编码是gbk,所以需要将字符串转为gbk才不会显示乱码
2、遍历文件目录时,需要排除特殊的目录.和..

完整的代码:

复制代码 代码如下:

#!/usr/bin/perl
 use strict;
 use warnings;
 use Encode qw/from_to/;
 
 my $path = "e:/CSS Design";
 my $filecount = 0;
 
 sub parse_env {   
     my $path = $_[0]; #或者使用 my($path) = @_; @_类似javascript中的arguments
     my $subpath;
     my $handle;
 
     if (-d $path) {#当前路径是否为一个目录
         if (opendir($handle, $path)) {
             while ($subpath = readdir($handle)) {
                 if (!($subpath =~ m/^\.$/) and !($subpath =~ m/^(\.\.)$/)) {
                     my $p = $path."/$subpath";
 
                     if (-d $p) {
                         parse_env($p);
                     } else {
                         ++$filecount;
                         print $p."\n";
                     }
                 }               
             }
             closedir($handle);           
         }
     }
 
     return $filecount;
 }
 
 my $count = parse_env $path;
 my $str = "文件总数:".$count;
 from_to($str, "utf8", "gbk");
 
 print $str;

运行效果图:

时间: 2024-10-21 12:21:18

Perl实现遍历目录例子_perl的相关文章

深入linux下遍历目录树的方法总结分析_C 语言

前几天需要实现对整个目录树的遍历,查阅了相关的一些资料.开始找到的原始的方法是使用readdir()与lstat()函数实现递归遍历,后来发现linux对于目录遍历这种最常用的操作已经提供了很完善的接口:ftw()与nftw().下面就这两种方法具体说明一下.1.手动实现递归1.1 stat()函数族stat函数族包括:stat,fstat以及lstat函数,都是向用户返回文件的属性信息(元数据). 复制代码 代码如下: view plaincopy to clipboardprint?#inc

Perl脚本实现递归遍历目录下的文件_perl

#!/usr/bin/perl -w use strict; use File::Spec; local $\ ="\n";#当前模块的每行输出加入换行符 my %options; #目录路径 $options{single_case} = '/home/jiangyu/src/pl/Example'; my @cases; if (-d $options{single_case}) {#判断目录是否存在 my @files; my $dh; push(@files, $options

shell脚本递归遍历目录及子目录的例子分享_linux shell

用shell写的递归遍历目录的脚本,脚本实现递归遍历指定目录,打印目录下的文件名. 实例1: 复制代码 代码如下: #!/bin/sh function scandir() {    local cur_dir parent_dir workdir    workdir=$1    cd ${workdir}    if [ ${workdir} = "/" ]    then        cur_dir=""    else        cur_dir=$(p

递归遍历目录

遍历|遍历目录|递归 这是vbs的例子,可以直接运行.里面的目录注意改一下.我这里用的是c:\inetpub如果要改成asp的,改动不大,createobject变成server.createobject就好. 对了,不要把c:\这样目录做输入参数,子目录太多,慢得要死.我一不小心等了一分钟. 截图:

在Linux下和Windows下遍历目录的方法及如何达成一致性操作

最近因为测试目的需要遍历一个目录下面的所有文件进行操作,主要是读每个文件的内容,只要知道文件名就OK了.在Java中直接用File类就可以搞定,因为Java中使用了组合模式,使得客户端对单个文件和文件夹的使用具有一致性,非常方便.但在C中就不一样了,而且在不同的平台下使用方法也不同.在Linux下实现该功能就非常方便,因为自带有API库,几个函数用起来得心应手(虽然有些小问题,后面说),在Windows下实现就不是那么方便,虽然也有自己的API,但用法有些晦涩难懂,因为没有封装起来,需要自己一步

PHP自定义遍历目录下所有文件dir(),readdir()函数

  方法一:使用dir()遍历目录 dir()函数,成功时返回Directory类实例 PHP dir() 语法格式为: dir(directory);//directory为需要显示文件名的目录名称,可包含路径信息 PHP dir() 用法举例:列出upload目录下的所有文件名:  代码如下   <?php $dir = @ dir("upload");//打开upload目录:"@"可屏蔽错误信息,因有时候需要显示文件的目录内并没有文件,此时可能会报出错

Python遍历目录中的所有文件的方法_python

os.walk生成器os.walk(PATH), PATH是个文件夹路径,当然可以用.或者../这样啦. 返回的是个三元元组为元素的列表, 每个元素代表了一个文件夹下的内容.第一个就是当前文件夹下内容. 返回的三元元组代表(该工作文件夹, 该文件夹下的文件夹的列表, 该文件夹下文件的列表). 所以, 获得所有子文件夹, 就是(d代表这三元元组): os.path.join(d[0],d[1]); 获得所有子文件, 就是: os.path.join(d[0],d[2]); 以下例子使用了两套循环,

PHP遍历目录函数opendir()、readdir()、closedir()、rewinddir()总结_php技巧

在进行PHP编程时,需要对服务器某个目录下面的文件进行浏览,通常成为遍历目录.取得一个目录下的文件和子目录,就需要用到opendir()函数.readdir()函数.closedir()函数和rewinddir()函数. ①函数opendir() 函数opendir()用于打开指定目录,接受一个目录的路径及目录名作为参数,函数返回值为可供其他目录函数使用的目录句柄(资源类型).如果该目录不存在或者没有访问权限,则返回FALSE. ②函数readdir() 函数readdir()用于读取指定目录,

PHP使用glob函数遍历目录或文件夹的方法_php技巧

本文实例讲述了PHP使用glob函数遍历目录或文件夹的方法.分享给大家供大家参考.具体分析如下: 一说到php遍历目录我们很多朋友会想到是opendir与readdir,这样就可以遍历目录并显示文件,但在php中有一个更简洁的遍历目录的函数glob估计很少有人知道此函数,不过我觉得比起opendir与readdir要简单多了. PHP glob函数的使用:glob-寻找与模式匹配的文件路径. 例子,代码如下: 复制代码 代码如下: <?php $fileList=glob('*.*'); for