一段Perl代码获取指定目录下的文件
发布时间:2020-12-16 00:01:15 所属栏目:大数据 来源:网络整理
导读:sub?FindFileInDir{?my?$dir?=?$_[0];?#print?"$dirn";?opendir(DIR,?$dir||?die?"can't?open?this?$dir");?my?@files?=?readdir(DIR);?closedir(DIR);?for?my?$file?(@files){?next?if($file?=~?m/.$/?||?$file?=~?m/..$/);??if?($file?=~?/.(c|h|cpp)
sub?FindFileInDir { ?my?$dir?=?$_[0]; ?#print?"$dirn"; ?opendir(DIR,?$dir||?die?"can't?open?this?$dir"); ?my?@files?=?readdir(DIR); ?closedir(DIR); ?for?my?$file?(@files){ ?next?if($file?=~?m/.$/?||?$file?=~?m/..$/); ??if?($file?=~?/.(c|h|cpp)$/i) ??{ ???print?"$dir/$file?n"; ???#push(@FileFolder,?"$dir/$file"); ??} ??elsif(-d?"$dir/$file") ??{ ???&FindFileInDir("$dir/$file"?); ??} ?} } 如果你不喜欢递归,我们可以试试迭代的方式。 sub?FindFileInDirWithStack { ?my?$dir?=?$_[0]; ?my?@FolderStack?=?(); ? ?push(@FolderStack,?$dir); ?while(1) ?{ ??my?$currentSearchFolder?=?pop(@FolderStack); ??if(defined($currentSearchFolder)?==?0) ??{ ???last; ??} ??opendir(DIR,?$currentSearchFolder||?die?"can't?open?this?$currentSearchFolder"); ??my?@files?=?readdir(DIR); ??closedir(DIR); ??for?my?$file?(@files){ ???next?if($file?=~?m/.$/?||?$file?=~?m/..$/); ???if?($file?=~?/.(c|h|cpp)$/i) ???{ ????print?"$currentSearchFolder/$file?n"; ???} ???elsif(-d?"$currentSearchFolder/$file") ???{ ????push(@FolderStack,?"$currentSearchFolder/$file"); ???} ??}?? ?} } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |