我正在使用FileSystemWatcher
在C#中编写Windows服务应用程序。
如何在Windows资源管理器中向文件和文件夹添加状态图标,类似于Dropbox或SVN的操作方式?
答案 0 :(得分:15)
答案 1 :(得分:2)
我从来没有玩过这个,但我认为这是正确的方式。
首先将文件夹设为系统文件夹,然后创建Desktop.ini文件并在其中应用更改。
[.ShellClassInfo]
InfoTip=@Shell32.dll,-12690
IconFile=%SystemRoot%\system32\SHELL32.dll
IconIndex=-238
答案 2 :(得分:1)
对于仍然在这个问题上有兴趣的人:
Here是一个代码项目链接,它详细描述了该过程。
它使用SharpShell库,也可以在nuget上找到。
Codeproject中的代码看起来像这样:
[ComVisible(true)]
public class ReadOnlyFileIconOverlayHandler : SharpIconOverlayHandler
{
protected override int GetPriority()
{
// The read only icon overlay is very low priority.
return 90;
}
protected override bool CanShowOverlay(string path, FILE_ATTRIBUTE attributes)
{
try
{
// Get the file attributes.
var fileAttributes = new FileInfo(path);
// Return true if the file is read only, meaning we'll show the overlay.
return fileAttributes.IsReadOnly;
}
catch (Exception) { return false; }
}
protected override System.Drawing.Icon GetOverlayIcon()
{
// Return the read only icon.
return Properties.Resources.ReadOnly;
}
}