package FileOperate;
sub new
{
my $class = shift;
#一个空的引用
my $ref = {};
#将引用和对象绑定
bless($ref,$class);
#返回引用
return $ref;
}
#获取一个目录下的所有文件名字
sub ListFile{
my $ref = shift;
my $dir = shift @_;
my @FileName;
opendir DH, $dir;
foreach my $file (readdir DH)
{
next if $file eq "." or $file eq "..";
$file = "$dir/$file";
if(-d $file)
{
&ListFile($file);
}
else
{
push @FileName ,$file;
}
}
return @FileName;
}
#获取文件的内容写入容器
sub GetFileContent
{
my $ref = shift;
my $filename = shift @_;
#测试文件是否存在
if( ! -e $filename)
{
print "$filename\n";
die "The file does not exits\n";
}
#测试文本是否可以读取
if(! open readFile, $filename)
{
die "Can not open file\n";
}
my @SearchFile;
while()
{
push @SearchFile,$_;
}
close readFile;
@SearchFile;
}
#将容器的内容写入文件
sub WriteFileContent
{
my $ref = shift;
my ($FileName,@logitem ) = @_;
my $tm;
open(logfile,">$FileName")||die "can't open file $& !";
print logfile "@logitem\n";
close(logfile);
}
#模块结束标志
1;
use FileOperate;
#获取对象实例
my $FileOperate = FileOperate->new();
my $FilePath = "C:\\Documents and Settings\\Administrator\\桌面\\PrelTest\\保存的模块\\文本处理";
#获取文件夹下所有内容
my @FileContent;
@FileContent = FileOperate->ListFile($FilePath);
print @FileContent;
#读取文本内容
my $TextPath = "C:\\Documents and Settings\\Administrator\\桌面\\PrelTest\\保存的模块\\文本处理\\read.txt";
my @FileContent = FileOperate->GetFileContent($TextPath );
print @FileContent;
#写入文本测试
my $WriteFilePath = "C:\\Documents and Settings\\Administrator\\桌面\\PrelTest\\保存的模块\\文本处理\\write.txt";
FileOperate->WriteFileContent($WriteFilePath,@FileContent);