如何在c#中自定义文件夹而不在该文件夹中创建ini文件?
我试图自定义一个文件夹。主要控制文件夹图标。这是在使用我的自定义设置在该文件夹中创建desktop.ini文件时实现的。现在我想自定义文件夹,而不在该文件夹中进行任何更改(添加/删除)。我怎样才能做到这一点 任何帮助都会很好。如何在c#中自定义文件夹而不在该文件夹中创建ini文件?,c#,visual-studio,directory,C#,Visual Studio,Directory,我试图自定义一个文件夹。主要控制文件夹图标。这是在使用我的自定义设置在该文件夹中创建desktop.ini文件时实现的。现在我想自定义文件夹,而不在该文件夹中进行任何更改(添加/删除)。我怎样才能做到这一点 任何帮助都会很好。 提前感谢。我认为没有办法做到这一点,但您可以这样做来隐藏desktop.ini文件,即使显示隐藏的文件 StreamWriter sw = new StreamWriter(iniFile); sw.WriteLine("[.ShellClassInfo]"); sw.
提前感谢。我认为没有办法做到这一点,但您可以这样做来隐藏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);
我不记得最后一行是否有必要,因为我在一年多前写过这段代码。实际上,这可以在没有文件的情况下完成。只是我们必须实现一个Shell图标覆盖处理程序,一个COM对象,它实现了IShellIconOverlayIdentifier接口。这份文件帮助很大 也许给我们看看代码?然后我们可能会帮助您找出哪些不起作用。在C#中,您不可能必须更新desktop.inifile@roryap代码与第一个答案类似。这很有效。但由于我不应该在文件夹中做任何修改,我正在考虑其他方法来完成它。@DhavalPatel Ok!如果不是c#,还有什么能帮我做到这一点?@dp94:c++或vc++可能会帮你我也这么做了。非常感谢。但即使它是隐藏的,也会对文件夹进行一些不应该进行的修改(添加ini文件)。除了从同一文件夹中控制文件夹的设置外,还有什么方法可以从其他地方(外部)控制该文件夹的设置吗?我认为这是不可能的,因为当您更改文件夹图标时,Windows也会创建desktop.ini文件。实际上,这可以在没有InFile的情况下完成。只是我们必须实现一个Shell图标覆盖处理程序,一个实现IShellIconOverlayIdentifier接口的COM对象。这份文件帮助很大。您确定可以更改文件夹图标吗?似乎,使用这种方法,您可以更改文件上的小图标,而不是文件夹的图标。我很确定编写Shell图标覆盖处理程序会更改文件夹图标。如果您绘制一个大图标,您可能可以覆盖文件夹图标,对:-),但是,不更改desktop.ini文件的动机是什么?