Perl脚本下载文件并检查文件类型

时间:2015-04-29 12:10:40

标签: windows perl pdf file-type

我想要做的很简单: 1)从硬编码的URL下载文件(它将始终保持不变) 2)检查文件是否真的是PDF(我认为最好检查幻数%PDF) 3)如果是这样,重命名文件并移动到文件夹xy ||如果没有,则相应地重命名。

注意:这将需要在Windows 7系统上运行。

这是我的代码:

#!/usr/bin/perl
use warnings;
use strict;
use LWP::Simple;
use POSIX qw( strftime );
use File::Copy;
use File::Type;

my $date = strftime("%m/%d/%Y", localtime);
my $url  = "http://www.oracle.com/technetwork/database/options"
          ."/advanced-analytics/r-enterprise/ore-reference-manual-1882822.pdf"; 

my $dlfile = "Test.pdf";
my $resp = '';
my $srcdir = "C:\\pdfscripthome";
my $dest = "C:\\pdfdump";
my $old = "$srcdir/$dlfile";
$resp = getstore( $url, $dlfile );

sub CheckFileType {
    my $chkfile="$srcdir//Test.pdf";
    my $ft = File::Type->new();
    my $file_type = $ft->mime_type($chkfile);

    if ( $file_type eq 'application/pdf' ) {
        move( $old, $dest ) or die "Move $old -> $dest failed: $!";
    }
    else {
        rename ("//$srcdir/Test.pdf", "//$srcdir/NotAValidPDFFile.pdf" )
        || die ("Error in renaming");
    }
}

sub main{
    &CheckFileType();
}

&main;

当我尝试执行时会发生什么,是没有任何反应。奇怪的是,当我发表评论时

use File::Type;

out,它下载文件(当然检查没有发生)。

我认为sub CheckFileType { }中某处出现了错误,但我无法看到它。

0 个答案:

没有答案
相关问题