2011/03/22

20110322-程式-用C#取得檔案內的摘要資訊

程式要取得檔案的以下資訊


真的是google找了好一陣子(整整1天)!才有辦法"取得"他的結果
aaaa

==================================================================
(以下資訊全為自已記錄用~~不保證觀念正確~有誤地方再指正)
目前只會"取得"資訊,"設定"資訊的方法還不會。
結論:
1. 利用 "Shell.Application" 這windows Object 去指定其目錄。並取得目錄下指定文件的屬性。
2. 網站上是 VB Code ,而我改寫用 C#來做。
3. 它的屬性值,由 -1 ~287 都有;而-1 是「Retrieves the info tip information for the item.」
==================================================================
參考資料區:
Google :「C# 取得檔案的摘要訊息」http://goo.gl/ah8HE

google:「如何取得檔案的摘要內容 http://goo.gl/9kceb

文:(應是所要的) ASP要如何寫回檔案的摘要?? http://goo.gl/OTw1m
==>最後我用 Shell.Application 去得要的資訊

文:C#中實現VB中的CreateObject方法  http://goo.gl/oFZlw

文:如何使用FileStream讀/寫MP3標籤  http://goo.gl/eskrw
===>NOTE:因MP3的資訊有固定format,所以才可以用這方式取得。

文:C# 如何編輯文件的摘要信息   http://goo.gl/mv7ox
===>NOTE:"寫"的方法我試不成功;據所知,讀用"Shell",寫就要用"ole32.dll"
        它已把 ole32.dll包成COM+物件 (ole32.dll是不可以直接reference) 
==================================================================

這次寫程式歷程:
1. Google 方面,一直在試"精確"的Keyword是什麼?一開始以為網路上會有很多資源,結果真正C#的範例程式很少。
2. 一篇有提到,所要的資訊都會存在尾段,用UltraEdit開的話的確可以發現到!

但,怎麼切割文字呀?以及它所謂的FORMAT是什麼?(MP3有特定FORMAT,但其它類沒有查到)
    所以,這方法實在無法去實作。

3. 最後查到用「Shell.Application」的程式方法,而它是VB的寫法。

這一段文字,我一開始看時,以為「127」這個是在切字元之類的~
而我,就先從「CreateObject」由VB寫法,改成 C#寫法。
 http://goo.gl/oFZlw

上圖為 VB、C# 兩者對應。

先取得它的Type  (註:VB的CreateObject通常是調用系統功能(COM+)之類的~~)
C#中类似 CreateObject 的方法就是 System.Activator.CreateInstance.  后续的对象函数的调用可以通过InvokeMember方法来实现。
再建立起這物件:system.Activator.CreateInstance(oType);  //註:這寫法一般的Class是不是如此Create的

就這樣把程式碼給轉成C#


就這樣取得它的屬性質
而  data 那一部份的 GetDetailsOf (~),是看  http://goo.gl/9GOL5  裡面的Parameter說明,才知道要傳objFile這一個物件 ,這樣才取得到值!!

0 意見 :

張貼留言