2015-06-01 3 views
-1

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

Руководство Я работал с: 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?

Кроме того, каковы последствия установки его как системной папки?

+0

Я чувствую, что установка атрибута системы в папку является странным способом для этого. Он работает, но когда я меняю значок папки в Проводнике, атрибут не задан, поэтому должен быть другой, правильный способ сделать это. – Dialecticus

ответ

2

SetFileAttributes функция работает как по файлам, так и по каталогам, а File.SetAttributes вызывает это внизу. Так что это правильный API. Я не вижу упоминания о том, как создавать исключения из папок. Существует один, если путь к папке находится на сетевом диске, но это означает, что функция принимает папки, а не плохие папки.

Что касается установки атрибута папки в систему, это, возможно, менее раздражает, если оно настроено только на чтение. Эффект is the same.