2012-05-02 102 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中這樣做了,所以它的觸摸方式不同。

選擇一個測試文件和文件夾:

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

得到外殼對象:

// 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 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); 
} 

如果您願意,您可以打印出來 - 這是目錄中所有可用的標題。以「註釋」爲例:

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

根據需要進行修改!