如何在c#中自定义文件夹而不在该文件夹中创建ini文件?

时间:2016-01-07 12:53:05

标签: c# visual-studio directory

我正在尝试自定义文件夹。主要是控制文件夹图标。这是使用我的自定义设置在该文件夹中创建desktop.ini文件时实现的。现在我想自定义文件夹,而不在该文件夹中进行任何更改(添加/删除)。我怎样才能做到这一点?

任何帮助都会很棒。 提前谢谢。

2 个答案:

答案 0 :(得分:2)

我认为没有办法做到这一点但你可以这样做来隐藏desktop.ini文件,即使显示隐藏文件。

StreamWriter sw = new StreamWriter(iniFile);

sw.WriteLine("[.ShellClassInfo]");
sw.WriteLine("IconResource=.\\" + iconPath + ",0");

sw.Close();

File.SetAttributes(filePath, File.GetAttributes(filePath) | FileAttributes.Hidden | FileAttributes.System);
File.SetAttributes(folderPath, File.GetAttributes(folderPath) | FileAttributes.ReadOnly);

我不记得最后一行是否必要,因为我在一年多前写过这段代码。

答案 1 :(得分:0)

实际上这可以在没有任何影响的情况下完成。只是我们必须实现一个Shell Icon Overlay Handler,一个实现 IShellIconOverlayIdentifier 接口的COM对象。这份文件帮了很多忙。 http://www.codeproject.com/Articles/7484/How-to-overlay-an-icon-over-existing-shell-objects