Как установить папку как системную папку

Чтобы программно изменить значок папки, я обнаружил, что мне нужно установить атрибут папки как системную папку.

Руководство, с которым я работал: 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, это, вероятно, менее раздражает, если он установлен только для чтения. Эффект тот же.

Другие вопросы по тегам