【问题标题】:How to customize a folder in c# without creating ini file within that folder?如何在 C# 中自定义文件夹而不在该文件夹中创建 ini 文件?
【发布时间】:2016-01-07 12:53:04
【问题描述】:

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

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

【问题讨论】:

  • 可以给我们看一些代码吗?然后我们或许可以帮助您找出问题所在。
  • 在 C# 中不可能必须更新 desktop.ini 文件
  • @roryap 代码与第一个答案类似。效果很好。但由于我不应该在文件夹中进行任何修改,我正在考虑其他方法来完成它。
  • @DhavalPatel 好的!如果不是 c#,还有什么可以帮助我实现这一目标?
  • @dp94:c++ 或 vc++ 可以帮助你

标签: c# visual-studio directory


【解决方案1】:

我认为没有办法做到这一点,但即使显示隐藏文件,您也可以这样做来隐藏 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);

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

【讨论】:

  • 我也是这样做的。谢谢你。但即使它是隐藏的,也会对文件夹进行一些不应该进行的修改(添加一个 ini 文件)。 有没有办法从其他地方(外部)控制文件夹的设置而不是从同一个文件夹?
  • 我认为不可能,因为当您更改文件夹图标时,Windows 也会创建 desktop.ini 文件。
  • 其实不用inifile也可以做到。只是我们必须实现一个Shell Icon Overlay Handler,一个实现IShellIconOverlayIdentifier 接口的COM 对象。这份文件帮助很大。 codeproject.com/Articles/7484/…reference document
【解决方案2】:

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

【讨论】:

  • 您确定可以更改文件夹图标吗?看来,通过这种方法,您可以更改文件上的小图标,而不是文件夹的图标。
  • 我很确定写一个 Shell Icon Overlay Handler 会改变文件夹图标。
  • 如果你画一个大图标,你可能会覆盖文件夹图标,真的 :-) 但是,不更改 desktop.ini 文件的动机是什么?
猜你喜欢
  • 2018-09-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-07-10
  • 2018-12-02
  • 1970-01-01
相关资源
最近更新 更多