2012-05-02 2 views
4

일부 파일의 속성에 요약 탭이 있습니다.이 탭에는 제목, 작성자, 설명 등의 정보가 들어 있습니다. C#에서 파일의 주석을 읽을 수있는 방법이 있습니까? jpg와 같은 이미지 파일의 주석 만 읽어야합니다.파일의 설명 읽기

+3

보기 [http://stackoverflow.com/questions/220097/read-write-extended-file-properties-c](http://stackoverflow.com/questions/220097/read-write-extended-file) -properties-c) – thepoosh

답변

4

의견 및 기타 답변은 검색하기 좋은 곳입니다. 다음은 당신을 도울 수있는 완전한 코드입니다. 먼저 shell32.dll을 참조하고 이름 공간 Shell32을 확인하십시오. LINQPad에서이 작업을 수행했습니다.

테스트 파일 및 폴더 선택 :

// For our LINQPad Users 
// var shellType = Type.GetTypeFromProgID("Shell.Application"); 
// dynamic app = Activator.CreateInstance(shellType); 

Shell32.Shell app = new Shell32.Shell(); 

가져 오기 폴더와 파일 오브젝트 :

var folderObj = app.NameSpace(folder); 
var filesObj = folderObj.Items(); 

이 가능한 헤더를 찾기 :

var folder = "..."; 
var file = "..."; 

셸 개체 가져 오기를

var headers = new Dictionary<string, int>(); 
for(int i = 0; i < short.MaxValue; i++) 
{ 
    string header = folderObj.GetDetailsOf(null, i); 
    if (String.IsNullOrEmpty(header)) 
     break; 
    if (!headers.ContainsKey(header)) headers.Add(header, i); 
} 

원하는 경우 해당 디렉토리에서 사용 가능한 모든 헤더를 인쇄 할 수 있습니다. 'Comments'헤더를 예로 사용하십시오.

var testFile = filesObj.Item(file); 
Console.WriteLine("{0} -> {1}", testFile.Name, folderObj.GetDetailsOf(testFile, headers["Comments"])); 

필요에 따라 수정하십시오!