2016-03-30 60 views
1

在Dropbox,TortoiseSvn等应用程序中,文件图标底部附有小图标。如何知道覆盖图标状态?

我怎样才能得到这些文件的覆盖图标。这意味着我想知道哪些文件使用图标A,哪些文件使用图标B以便知道文件同步状态。

在c#中有没有办法做到这一点?

+0

如果您是在文件同步状态之后,您可能可以从SVN API获取该文件,而不是从图标的外观对其进行反向工程。如果你去图标路线,请注意它可能会延迟;缓存并被用户禁用。 – MickyD

+1

@MickyD,我认为这样,但我有特殊要求,我必须得到覆盖图标。所以有什么建议? –

回答

-1

此代码将允许您从Windows中的文件中提取关联的图标。

var sysicon = System.Drawing.Icon.ExtractAssociatedIcon(ExePath); 
var bmpSrc = System.Windows.Interop.Imaging.CreateBitmapSourceFromHIcon(
            sysicon.Handle, 
            System.Windows.Int32Rect.Empty, 
            System.Windows.Media.Imaging.BitmapSizeOptions.FromEmptyOptions()); 
         sysicon.Dispose(); 
         bmpSrc.Freeze(); 
         fileIcon = bmpSrc; 
+1

文件图标与_overlay图标_不同。一个嵌入在文件中或由应用程序提供。叠加图标叠加在前者上。 – MickyD

+1

是的,@Thimmoth,我需要覆盖图标不文件图标,你能帮助我吗? –