2014-02-27 74 views
1

如果在Windows中打开文件的属性,通常会有一个“详细信息”选项卡。我想访问此选项卡上的信息,但我不知道如何。 它有一个模块吗?有人有代码sniplet吗?如何在Windows上获取文件的详细信息

我试图使用Win32 :: File的GetAttributes,但这些不是我正在寻找的属性。

回答

2
use Win32::OLE; 

my $objShell = Win32::OLE->new("Shell.Application") or die; 
my $objFolder = $objShell->NameSpace($myDir) or die; 
my $objFile = $objFolder->ParseName($fileName) or die; 

while ($i <= 34) 
{ 
    my $propertyName = $objFolder->GetDetailsOf($fileName,$i); 
    my $propertyValue = $objFolder->GetDetailsOf($objFile,$i); 
    print "$i -- $propertyName -- $propertyValue\n"; 
    $i++; 
} 
+0

谢谢,这个作品!我注意到的事情:对于$ myDir,路径必须是双反斜线形式(如c:\\ mydir - c:/ mydir不起作用)。另外,也许更好的使用foreach我的$我(0 .. 34)而不是while循环。 – capfan

1

您可以实例化COM "Shell.Application"对象。它公开一个.NameSpace(folder)方法,该方法返回对指定文件夹的名称空间的引用,该文件夹包含您需要的信息。检索到的实例包含一个Items集合,其中包含对该文件夹中每个文件的引用,以及一个.GetDetailsOf(file,property)以检索详细信息选项卡和资源管理器列中显示的每个值。

对不起,我不知道perl,所以我不能包含任何工作代码。

相关问题