如果在Windows中打開文件的屬性,通常會有一個「詳細信息」選項卡。我想訪問此選項卡上的信息,但我不知道如何。 它有一個模塊嗎?有人有代碼sniplet嗎?如何在Windows上獲取文件的詳細信息
我試圖使用Win32 :: File的GetAttributes,但這些不是我正在尋找的屬性。
如果在Windows中打開文件的屬性,通常會有一個「詳細信息」選項卡。我想訪問此選項卡上的信息,但我不知道如何。 它有一個模塊嗎?有人有代碼sniplet嗎?如何在Windows上獲取文件的詳細信息
我試圖使用Win32 :: File的GetAttributes,但這些不是我正在尋找的屬性。
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++;
}
您可以實例化COM "Shell.Application"
對象。它公開一個.NameSpace(folder)
方法,該方法返回對指定文件夾的名稱空間的引用,該文件夾包含您需要的信息。檢索到的實例包含一個Items
集合,其中包含對該文件夾中每個文件的引用,以及一個.GetDetailsOf(file,property)
以檢索詳細信息選項卡和資源管理器列中顯示的每個值。
對不起,我不知道perl,所以我不能包含任何工作代碼。
謝謝,這個作品!我注意到的事情:對於$ myDir,路徑必須是雙反斜線形式(如c:\\ mydir - c:/ mydir不起作用)。另外,也許更好的使用foreach我的$我(0 .. 34)而不是while循環。 – capfan