2014-02-27 71 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,所以我不能包含任何工作代碼。

相關問題