程式要取得檔案的以下資訊
![](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgvRd4K96oFzRjplyenXnlHn3zNAd2vUkF1CGQuh2cfxXpUutOvjqJ1t4xlat_un7mZ_2yuq81RduBKjHzVURZqbZY-Cw8m4cxswFC6XgSKjj1eu2MiOyxXA6u7qJByCGHjhndjopySp5eg/s400/2011-3-22%20%E4%B8%8A%E5%8D%88%2011-50-12.png)
真的是google找了好一陣子(整整1天)!才有辦法"取得"他的結果
![](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhWlBLv_ehOodhJ9DSBFnbUbNvak2cMCwo6VzQuWd3JM12Q2Xz7rZL5Sfk3Sa2dmGL3EYcgkO1IAc7zTkNdMiIafexcfhvYj0fa1b-t_1ccBGbaRw_e0Molgwi0JsCpcPwe4FHas_vCKjPi/s400/2011-3-22%20%E4%B8%8A%E5%8D%88%2011-24-17.png)
==================================================================
(以下資訊全為自已記錄用~~不保證觀念正確~有誤地方再指正)
目前只會"取得"資訊,"設定"資訊的方法還不會。
結論:
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
這次寫程式歷程:
1. Google 方面,一直在試"精確"的Keyword是什麼?一開始以為網路上會有很多資源,結果真正C#的範例程式很少。
2. 一篇有提到,所要的資訊都會存在尾段,用UltraEdit開的話的確可以發現到!
![](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhv-xgqKvxU7Lxiy7ATnwrf1x_S6mgIL_AyOpOKQ3gDu-tlHILCc-O5h5RP6xtNoLndl9jNaBkJturWwyH2Tmt4XjUWTtNAnKCo6jpYcbSfjjlilxdZ3DAV0jgl1AlOeBKCLx4D5QO6uJLj/)
但,怎麼切割文字呀?以及它所謂的FORMAT是什麼?(MP3有特定FORMAT,但其它類沒有查到)
所以,這方法實在無法去實作。
3. 最後查到用「Shell.Application」的程式方法,而它是VB的寫法。
![](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEilgU4GbtQpN-z4e4HsHGaC4oo2yriRjsJ6hqc6yA-IO-uM2zBtUwduXpLFcaaWCjeNJ8zGl2-UKKLkcfZy24Brrr_JiNJw2m7V3BY97Fp5I_0wI1V33JCf6OXniHjtSZL5YOwZaDLNiugy/)
這一段文字,我一開始看時,以為「127」這個是在切字元之類的~
而我,就先從「CreateObject」由VB寫法,改成 C#寫法。
http://goo.gl/oFZlw
![](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj8AbJibZlKv3_lTeUypTwBObc8IWh3LnlLQyedsc2TJi9Vwb-pWx3egi9Fhtx8cCPFE_2PcTLUzrH1fVrOgOGux7CR7ABgYaGgf7uhgb2xryGAXGq9Uiu76Kf_sJlrFINo_J0PUSdpm3uS/s640/2011-3-22%20%E4%B8%8A%E5%8D%88%2011-26-12.png)
上圖為 VB、C# 兩者對應。
先取得它的Type (註:VB的CreateObject通常是調用系統功能(COM+)之類的~~)
「C#中类似 CreateObject 的方法就是 System.Activator.CreateInstance. 后续的对象函数的调用可以通过InvokeMember方法来实现。」
再建立起這物件:system.Activator.CreateInstance(oType); //註:這寫法一般的Class是不是如此Create的
就這樣把程式碼給轉成C#
![](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjwwjHfZ3qHABtUVv6RD2YgR-as8rn7puw396YAn1vb0mzgxtamrPOdaHbIUCiM9N6Hh46XACnK1rXeIpXx8KELPt4lbyh-MDLv-W1_hMxNztKC_IsfRbF-RTih7NI9t-AkwCvnFKJit6sr/)
就這樣取得它的屬性質
而 data 那一部份的 GetDetailsOf (~),是看 http://goo.gl/9GOL5 裡面的Parameter說明,才知道要傳objFile這一個物件 ,這樣才取得到值!!
![](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgvRd4K96oFzRjplyenXnlHn3zNAd2vUkF1CGQuh2cfxXpUutOvjqJ1t4xlat_un7mZ_2yuq81RduBKjHzVURZqbZY-Cw8m4cxswFC6XgSKjj1eu2MiOyxXA6u7qJByCGHjhndjopySp5eg/s400/2011-3-22%20%E4%B8%8A%E5%8D%88%2011-50-12.png)
真的是google找了好一陣子(整整1天)!才有辦法"取得"他的結果
aaaa
![](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhWlBLv_ehOodhJ9DSBFnbUbNvak2cMCwo6VzQuWd3JM12Q2Xz7rZL5Sfk3Sa2dmGL3EYcgkO1IAc7zTkNdMiIafexcfhvYj0fa1b-t_1ccBGbaRw_e0Molgwi0JsCpcPwe4FHas_vCKjPi/s400/2011-3-22%20%E4%B8%8A%E5%8D%88%2011-24-17.png)
==================================================================
(以下資訊全為自已記錄用~~不保證觀念正確~有誤地方再指正)
目前只會"取得"資訊,"設定"資訊的方法還不會。
結論:
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
![](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj8AbJibZlKv3_lTeUypTwBObc8IWh3LnlLQyedsc2TJi9Vwb-pWx3egi9Fhtx8cCPFE_2PcTLUzrH1fVrOgOGux7CR7ABgYaGgf7uhgb2xryGAXGq9Uiu76Kf_sJlrFINo_J0PUSdpm3uS/s640/2011-3-22%20%E4%B8%8A%E5%8D%88%2011-26-12.png)
上圖為 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 意見 :
張貼留言