2013-07-01 65 views
3

我目前正在使用中文SMB服務器,在該服務器上幾乎存儲了所有公司文件。 由於結構沒有改變,我希望能夠根據規則(允許我處理生成的文件(例如包含日期)的文件)放置文件上的「標籤」。 我只需要支持win7及以上版本,我希望我的信息可以從文本文件中讀取,而不是依賴某些元數據或客戶端的數據。從explorer.exe的外殼擴展中更改文件的顯示信息(如名稱)

所以我想寫一個shell擴展來完成這項工作。我的問題是,通過查看the documentation,我沒有找到讓我改變名字的東西。目前爲止我找到的最佳解決方案是使用the infotip handler,但我想知道是否有人有更好的方法來做到這一點。

總之,需要:

1)爲了與WIN7(及以上)兼容,

2)是可見的第一眼

3)要使用的只讀FS

+0

你需要在你的標籤中需要多少文字?您可能可以更改圖標? – Stobor

+0

並不多,因爲它只是「名稱翻譯」。所以255字符就足夠了。對於圖標,你的意思是使用[IExtractIcon](http://msdn.microsoft.com/en-us/library/cc144122(v = vs.85).aspx)?如果是這樣,我沒有看到任何限制,所以我想它會沒事的。 – Geod24

+0

是的,這就是我的意思,無論是IExtractIcon或[IShellIconOverlayIdentifier](http://msdn.microsoft.com/en-us/library/bb761265%28v=vs.85%29.aspx)。儘管如此,不要認爲「小圖標」,「列表」或「細節」視圖中的圖標足夠大,足以顯示20個以上的字符文件名。 – Stobor

回答

2

經過大量研究後,我發現最好的方法是編寫一個Shell Namespace extension

我將能夠提供一個代表我的服務器結構的虛擬目錄,並以我想要的方式翻譯這些名稱。

這似乎有點矯枉過正,雖然,但有沒有其他辦法由IShellFolder它提供的信息的IShellView

一個很好的來源,以改變顯示的顯示名稱管理的信息,我發現約它是迄今爲止最新的,是an article on Michael Edenfiled's blog