Perl获取目录下文件或者包含子目录下文件

 1 my $dir = "D:\\My_Work\\Temp";
 2 my @files = ();
 3
 4 #获取给定目录下文件
 5 @files = get_dir_files($dir);
 6
 7 #获取给定目录以及子目录下文件
 8 @files = get_dir_files_x($dir);
 9
10 #获取目录下以及子目录下文件,返回的结果中包含路径
11 sub get_dir_files_x{
12     my ($dir_p) = @_;
13     my @files = ();
14     my @dirs = ($dir_p);
15     die "error $basedir: $!" unless(-d $dir_p);
16     while(@dirs){
17         $dir = $dirs[0];
18         opendir folder, $dir || die "Can not open this directory";
19         my @filelist = readdir folder;
20         closedir folder;
21         foreach  (@filelist) {
22             next if ($_ eq "." or $_ eq "..");
23             my $f = path_join($dir,$_);
24             push(@dirs,$f) if (-d $f);
25             push(@files,$f) if (-f $f);
26         }
27         shift(@dirs);
28     }
29     return @files;
30 }
31
32 #获取目录下文件
33 sub get_dir_files{
34     my ($dir) = @_;
35     my @files = ();
36     opendir DIR,$dir or die "Can not open this dir";
37     my @file_list = readdir DIR;
38     closedir DIR;
39     foreach(@file_list) {
40         push(@files,$_) if(-f path_join($dir,$_));
41     }
42     return @files;
43 }
44
45 #获取路径合并操作,自动加上斜杠,有斜杠与没斜杠都可以合并
46 sub path_join{
47     my ($path1,$path2) = @_;
48     my $path = $path1."\\".$path2;
49     $path=~s/[\\|\/]+/\\/g;
50     return $path;
51 }
时间: 2024-10-12 16:44:53

Perl获取目录下文件或者包含子目录下文件的相关文章

windows下Python打开包含中文路径名文件

windows使用gbx(gb2312,gbk,gb18030我也不知道是哪个)对文件名及文件路径进行编码保存.打开文件的函数中使用诸如open(filename.encode('gbk'))可以很好的解决. #coding:utf8 if __name__ == '__main__': srcfile = r"D:/测试路径/测试文件.txt" f = open(srcfile.decode('utf8').encode('gbk')) for text in f.readlines

PHP 获取指定目录下所有文件(包含子目录)

//glob — 寻找与模式匹配的文件路径 $filter_dir = array('CVS', 'templates_c', 'log', 'img', 'config', 'css', 'js'); function get_file_list($dir) { global $filter_dir; $file_list = array(); $file_dir_list = array(); $dir_list = scandir($dir); foreach ($dir_list as

统计指定目录下所有mp4文件的时长(包含子目录下的文件)

1 # -*- coding:utf-8 -*- 2 # Author :Zcb 3 4 import os 5 from moviepy.editor import VideoFileClip 6 7 file_Dir = u"e:\\test" #加个u 是表示unicode 一般用在中文字符前 8 sum_time =0 9 10 class FileCheck(): 11 def __init__(self): 12 self.file_dir = file_Dir 13 14

C# 遍历文件夹及子目录下所有图片

要求:取指定目录下面的所有图片,以表格的型式展示并显示该图片的相对路径. 服务端代码: public partial class ViewIcon : System.Web.UI.Page { JArray ja = new JArray(); //定义一个数组 public string info = string.Empty; protected void Page_Load(object sender, EventArgs e) { var path1 = System.AppDomain

列出路径下所有文件,以及子目录下所有文件,用递归

public static void print(File f)throws IOException { if(f.isDirectory()) { File[] files = f.listFiles(); for(int i = 0; i < files.length; i ++) { if(files[i].isDirectory()) { print(files[i]); System.out.println(files[i]); } else { System.out.println(

android 遍历所有文件夹和子目录搜索文件

java代码: import java.io.File; import android.app.Activity; import android.os.Bundle; import android.view.View; import android.view.View.OnClickListener; import android.widget.Button; import android.widget.EditText; import android.widget.TextView; impo

C#遍历指定文件夹中的所有文件

DirectoryInfo TheFolder=new DirectoryInfo(folderFullName); //遍历文件夹 foreach(DirectoryInfo NextFolder in TheFolder.GetDirectories()) this.listBox1.Items.Add(NextFolder.Name); //遍历文件 foreach(FileInfo NextFile in TheFolder.GetFiles()) this.listBox2.Items

C#遍历指定文件夹中的所有文件(转)

原文链接:http://www.cnblogs.com/qianqianfy/archive/2009/07/08/1518974.html 1. C#遍历指定文件夹中的所有文件 DirectoryInfo TheFolder=new DirectoryInfo(folderFullName); //---遍历文件夹 foreach(DirectoryInfo NextFolder in TheFolder.GetDirectories()) this.listBox1.Items.Add(Ne

C#读取指定文件夹中的所有文件

C#遍历指定文件夹中的所有文件 DirectoryInfo TheFolder=new DirectoryInfo(folderFullName);//遍历文件夹foreach(DirectoryInfo NextFolder in TheFolder.GetDirectories())   this.listBox1.Items.Add(NextFolder.Name);//遍历文件foreach(FileInfo NextFile in TheFolder.GetFiles())   thi