免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
楼主: fang3984581
打印 上一主题 下一主题

新手请教,如何用PERL获取某个目录的所文件的文件名 [复制链接]

论坛徽章:
0
11 [报告]
发表于 2011-06-04 12:41 |只看该作者
Cu_fans 发表于 2011-06-04 12:32



    大侠,调不出来啊

论坛徽章:
0
12 [报告]
发表于 2011-06-04 12:43 |只看该作者
next if /^\.{1,2}$/;
兰花仙子 发表于 2011-06-04 12:31



    不懂,能帮写个完整的吗?谢了啊

论坛徽章:
0
13 [报告]
发表于 2011-06-04 12:58 |只看该作者
  1. opendir(DIR,'d:/www');
  2. my @arrFile = grep {!/^\./} readdir DIR;
  3. for my $file(@arrFile )
  4. {

  5.        print $file,"\n";
  6. }
复制代码
这样应该可行

论坛徽章:
0
14 [报告]
发表于 2011-06-04 13:07 |只看该作者
不懂,能帮写个完整的吗?谢了啊
fang3984581 发表于 2011-06-04 12:43

这样应该可以懂了。
  1. opendir(DIR,'d:/www');

  2. while(my $file = readdir(DIR))

  3. {
  4.           next if ($file eq '.');
  5.           next if ($file eq '..');

  6.        print $file,"\n";

  7. }

  8. closedir(DIR);
复制代码

论坛徽章:
0
15 [报告]
发表于 2011-06-04 15:19 |只看该作者
都是大好人,谢绝各位啦

论坛徽章:
0
16 [报告]
发表于 2011-06-04 22:13 |只看该作者
谢绝???

论坛徽章:
0
17 [报告]
发表于 2011-06-06 15:50 |只看该作者
本帖最后由 aef25u 于 2011-06-06 16:04 编辑

以下代码适用于XP系统
  1. use Cwd;
  2. use Win32::OLE;
  3. use Moo***;

  4. #use Data::Dumper;
  5. #############################################################################
  6. class SearchFile {
  7.     has regex =>
  8.       ( is => 'rw', isa => 'Str', required => 1, default => '.*\.doc$' );

  9.     #弹出窗口,以供选择目标文件夹
  10.     method _Path {
  11.         my $shell     = Win32::OLE->new("shell.Application");
  12.         my $objFolder = $shell->BrowseForFolder( 0, "Select a folder:", 0 );
  13.         my $Path      = $objFolder->Self->{Path};
  14.         $Path =~ s/(\\)/\//g;
  15.         return $Path;
  16.     }

  17.     #遍历搜索文件,支持正则表达式
  18.     method File_Find {
  19.         my $tem      = $self->regex;
  20.         my $qr_regex = qr/$tem/;
  21.         my $Path     = $self->_Path();
  22.         my @dirs     = ( $Path . '/' );
  23.         my ( @retFile, $dir, $file );
  24.         while ( $dir = pop(@dirs) ) {
  25.             local *DH;
  26.             if ( !opendir( DH, $dir ) ) {
  27.                 warn "Cannot opendir $dir: $! $^E";
  28.                 next;
  29.             }
  30.             foreach ( readdir(DH) ) {
  31.                 if ( $_ eq '.' || $_ eq '..' ) {
  32.                     next;
  33.                 }
  34.                 $file = $dir . $_;
  35.                 if ( $file =~ /$qr_regex/ ) {
  36.                     push( @retFile, $file );
  37.                 }
  38.                 if ( !-l $file && -d _ ) {
  39.                     $file .= '/';
  40.                     push( @dirs, $file );
  41.                 }
  42.             }
  43.             closedir(DH);
  44.         }
  45.         return \@retFile;
  46.     }

  47. }
  48. #############################################################################
  49. my $objFind=SearchFile->new(regex=>'.*\.xls');
  50. #my $objFind=SearchFile->new();
  51. my $ffn=$objFind->File_Find();
  52. print join("\n",@{$ffn});
复制代码
第三行用

论坛徽章:
46
15-16赛季CBA联赛之四川
日期:2018-03-27 11:59:132015年亚洲杯之沙特阿拉伯
日期:2015-04-11 17:31:45天蝎座
日期:2015-03-25 16:56:49双鱼座
日期:2015-03-25 16:56:30摩羯座
日期:2015-03-25 16:56:09巳蛇
日期:2015-03-25 16:55:30卯兔
日期:2015-03-25 16:54:29子鼠
日期:2015-03-25 16:53:59申猴
日期:2015-03-25 16:53:29寅虎
日期:2015-03-25 16:52:29羊年新春福章
日期:2015-03-25 16:51:212015亚冠之布里斯班狮吼
日期:2015-07-13 10:44:56
18 [报告]
发表于 2011-06-06 17:13 |只看该作者
敏感词,真的是敏感词啊

论坛徽章:
0
19 [报告]
发表于 2011-06-06 17:52 |只看该作者

  1. #!/usr/bin/perl
  2. use strict;
  3. use warnings;

  4. my $dir_to_files = "E:\\沉淀目录\\Perl\\源代码\\csdn测试\\文本处理";
  5. my $all_file;
  6. my $file;
  7. opendir DH, $dir_to_files or die "Can't open $dir_to_files:$_!\n";
  8. foreach $file (readdir DH) {
  9.         #print "one file in $dir_to_files if $file\n";
  10.     next if $file =~/^\./;  #跳过以点号开头的文件
  11.         #如果要排除当前目录和上层目录,则可直接写明:
  12.         #next if $file eq "." or $file eq "..";
  13.         $all_file ="$dir_to_files/$file";#合并为完整路径
  14.                 print "$all_file\n";
  15.         print "$file\n";
  16. }

  17. closedir DH;
复制代码

论坛徽章:
0
20 [报告]
发表于 2011-06-07 09:31 |只看该作者
敏感词,真的是敏感词啊
zhlong8 发表于 2011-06-06 17:13



我都不只郁闷一回了{:3_204:}
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP