Как установить папку как системную папку
Чтобы программно изменить значок папки, я обнаружил, что мне нужно установить атрибут папки как системную папку.
Руководство, с которым я работал: http://www.codeproject.com/Articles/9331/Create-Icons-for-Folders-in-Windows-Explorer-Using
И соответствующий код:
File.SetAttributes(folderPath, File.GetAttributes(folderPath) | FileAttributes.System);
Глядя на документацию, эта функция должна была вызвать исключение для пути к папке в качестве параметра:
https://msdn.microsoft.com/en-us/library/system.io.file.setattributes%28v=vs.110%29.aspx
Это действительно правильный API?
Кроме того, каковы последствия установки его в качестве системной папки?
1 ответ
Функция SetFileAttributes работает как с файлами, так и с каталогами, а File.SetAttributes вызывает ее снизу. Так что это правильный API. Я не вижу упоминания о повышении исключений для папок. Существует один, если путь к папке находится на сетевом диске, но это просто означает, что функция принимает папки, просто не плохие папки.
Что касается установки атрибута папки в system, это, вероятно, менее раздражает, если он установлен только для чтения. Эффект тот же.