2014-02-27 4 views
1

Windows에서 파일의 속성을 열면 대개 자세히 탭이 나타납니다. 이 탭의 정보에 액세스하고 싶지만 어떻게 작동하는지 모릅니다. 모듈이 있습니까? 누군가 코드 스 니 플릿을 가지고 있습니까?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가 작동하지 않음)이어야한다는 것입니다. 또한 while 루프 대신 foreach my $ i (0 .. 34)를 사용하는 것이 좋습니다. – capfan

1

COM "Shell.Application" 개체를 인스턴스화 할 수 있습니다. 지정된 정보를 보유하고있는 지정된 폴더의 이름 공간에 대한 참조를 반환하는 .NameSpace(folder) 메서드를 제공합니다. 검색된 인스턴스는 폴더의 각 파일에 대한 참조가있는 Items 컬렉션과 세부 정보 탭 및 탐색기 열에 표시된 각 값을 검색하는 .GetDetailsOf(file,property)을 포함합니다.

죄송합니다. 필자는 perl에 대해 전혀 알지 못하므로 어떤 작동 코드도 포함 할 수 없습니다.

관련 문제