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{single_case});
    while (@files) {
      if (-d $files[0]) {#若是目录执行以下操作
        opendir $dh, $files[0] or die $!;#打开目录句柄,若失败打印错误信息
        @_ = grep { /^[^\.]/ } readdir $dh;#过滤掉以"."和".."的文件,即UNIX下的隐藏文件
        foreach (@_) {
          push(@files, File::Spec->catfile ($files[0], $_));#连接目录名和文件名形成一个完整的文件路径:
        }
        closedir $dh;
      }
      #若是文件直接压入数组@cases中
      elsif ($files[0] =~ /\.t$/) {
        push(@cases, $files[0]);
      }
      shift @files;
    }
  }
  else {
    @cases = ($options{single_case});
  }

print $_ foreach @cases;#打印文件列表

以上是小编为您精心准备的的内容,在的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索目录
, 遍历
, 递归
, 文件
Perl脚本
perl 递归遍历文件夹、python 递归遍历目录、php递归遍历目录、shell 递归遍历目录、php递归遍历树形目录,以便于您获取更多的相关知识。

时间: 2024-08-02 10:27:36

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

PHP不用递归遍历目录下所有文件的代码_php实例

实现代码: /** * PHP 非递归实现查询该目录下所有文件 * @param unknown $dir * @return multitype:|multitype:string */ function scanfiles($dir) { if (! is_dir ( $dir )) return array (); // 兼容各操作系统 $dir = rtrim ( str_replace ( '\\', '/', $dir ), '/' ) . '/'; // 栈,默认值为传入的目录 $

PHP教程:不用递归遍历目录下的文件

  如果要遍历某个目录下的所有文件(包括子目录),最首先想到的思路就是用递归:先处理当前目录,再处理当前目录下的子目录.不用递归可不可以呢?以前学数据结构的时候看到过,递归其实是利用堆栈来实现的,递归的特点就是不断的调用自身,最后一次的调用是最先执行完的,倒数第二次调用是其次执行完的,依次类推,最初的调用是最后执行完的.如果理解了递归的原理,其实就可以把所有用递归的实现转化为非递归的实现. 用非递归方式遍历某个目录下的所有文件,思路主要分三步: 1. 创建一个数组,将要遍历的这个目录放入;(其实

PHP采用自定义函数实现遍历目录下所有文件的方法_php技巧

目录的遍历是PHP程序设计中经常会用到的一个功能,很多PHP项目都有这一功能模块.今天本文就来实例解析一下PHP采用自定义函数实现遍历目录下所有文件的方法.具体方法如下: 方法一:使用readir()遍历目录 实现代码如下: function listDir($dir) { if(is_dir($dir)) { if($handle = opendir($dir)) { while($file = readdir($handle)) { if($file != '.' && $file !

jsp 查找遍历目录下所有文件

jsp教程 查找遍历目录下所有文件,我们先利用了application.getRealPath读取根目录文件,然后再利用 new file读取目录文件再保存到数组,最后用for遍历输出. <%@ page import="java.io.*" %> <HTML>     <HEAD>         <TITLE>Index of Files</TITLE>     </HEAD>     <BODY>

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

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

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

Python删除指定目录下过期文件的2个脚本分享_python

脚本1: 这两天用python写了一个删除指定目录下过期时间的脚本.也可能是我初学python,对python还不够熟习,总觉得这个脚本用shell写应该更简单也更容易些.就功能上来说,该脚本已经实现了我想要的效果,不过该脚本还不够通用性,还有更多可以完善的地方.目前该脚本在python2.4下运行良好.同时,我在脚本中加入了对python版本的判断,理论上2.7下也应该可以正常使用.有环境的朋友可以帮忙测试一下.该脚本不完善的地方在于,只能支持一级目录下的文件删除,还不支持目录递归.同时过期文

php递归遍历和和删除文件夹下的所有文件

php递归删除目录下的所有文件: <?php header("content-type:text/html;charset=utf-8"); /** *删除指定目录()删除子目录和文件 *@path 文件目录路径 string *@return void */ function hello($path){ //1:判断删除目录是否存在 if(!file_exists($path)){ return false; } //2:将目录内容全部获取出 $list = scandir($

Android如何遍历特定目录下所有文件

第一个案例为大家分享了Android遍历特定目录下所有文件,包含子目录的,并删除最新创建的. private boolean deleteLastFromFloder(String path) { boolean success = false; try { ArrayList<File> images = new ArrayList<File>(); getFiles(images, path); File latestSavedImage = images.get(0); if