SubTest()DimMyName,Dic,Did,I,T,F,TT,MyFileNameT=TimeSetDic=CreateObject("Scripting.Dictionary")'创建一个字典对象SetDid=CreateObject("Scripting.Dictionary")Dic.Add("D:\MyDocuments\"),""I=0DoWhileIDic.CountKe=Dic.keys'开始
遍历字典MyName=Dir(Ke(I),vbDirectory)'查找目饥备山录DoWhileMyName""IfMyName"."AndMyName".."ThenIf(GetAttr(Ke(I)&MyName)AndvbDirectory)=vbDirectoryThen'如果是次级目录Dic.Add(Ke(I)&MyName&"\"),""'就往字典中添加这个次级目录名作为一个条目EndIfEndIfMyName=Dir'继续遍历烂中寻找LoopI=I+1LoopDid.Add("
文件清单"),""'以查找D盘MyDocuments下所有EXCEL文件为例ForEachKeInDic.keysMyFileName=Dir(Ke&"*.xls")DoWhileMyFileName""Did.Add(Ke&MyFileName),""MyFileName=DirLoopNextForEachShInThisWorkbook.WorksheetsIfSh.Name="XLS文件
清单"ThenSheets("XLS文滚桥件清单").Cells.DeleteF=TrueExitForElseF=FalseEndIfNextIfNotFThenSheets.Add.Name="XLS文件清单"EndIfSheets("XLS文件清单").[A1].Resize(Did.Count,1)=WorksheetFunction.Transpose(Did.keys)TT=Time-TMsgBoxMinute(TT)&"分"&Second(TT)&"秒"EndSub不知道你这里读取具体指什么,我就把文件名打印出来,把文件内容打印出来吧。(程序指定两个参数,第一个参数是指定的文件夹名橘汪,每二慎指个参数是指定的扩展名。)
#!/usr/bin/perl
use strict
use warnings
die "Usage: $0 <dir><extion>\n" unless @ARGV == 2
my $Dir = $ARGV[0]
my $Ext = $ARGV[1]
opendir(DH, "$Dir") or die "Can't open: $!\n"
#读取指定文件夹下面的指定扩展名的文件名,保存到数组圆孝仔里。
my @list = grep {/$Ext$/ &&-f "$Dir/$_" } readdir(DH)
closedir(DH)
chdir($Dir) or die "Can't cd dir: $!\n"
foreach my $file (@list){
open(FH, "$file") or die "Can't open: $!\n"
print "$file:\n"
while(<FH>){
print
}
print "\n"
close(FH)
}
给你一个比较复杂点的例子。。。。
opendir (DIR,"X:\\")||die"$!"
chdir("X:\\")
@dirs=grep{/^\.\.?$/}readdir DIR
foreach $dir(@dirs){
opendir (DIR2,$dir)||die"$!"
@files=grep{/indd$/}readdir DIR2
close DIR2
}
close DIR
当然还简州有更多的方法,可以用glob,LS所竖搜说的拦纤蔽File::Find等等。。。。。
评论列表(0条)