在Perl中是否有办法检查文档是否受密码保护

时间:2013-05-29 03:51:28

标签: perl winapi

在打开任何单词或excel文档之前,我想提前知道文档是否受密码保护,如果是,我想跳过它。

我使用Win32 :: OLE打开文件。

1 个答案:

答案 0 :(得分:0)

一种方法是尝试使用虚拟密码打开文档。

以下是我尝试过的方法。

my $Word =  Win32::OLE->new('Word.Application');

if(!$Word){
    # Word can't be opened, exit or return false
}

my $Doc;
eval{$Doc = $Word->Documents->Open("Path to your doc",undef,undef,undef,"thisIsPassword");};
if($@){
    # Document opening failed, exit or return false   
}
if(!$Doc){
    # File doesn't exists, exit or return false   
}

my $var = Win32::OLE->LastError() ;
if($var){
    # File may be password protected, exit or return false
}
unless ($Doc eq '') {
    # Do whatever...
}