Можно ли показывать скрытые папки в folderbrowserialog по умолчанию?

#c# #.net #winforms

#c# #.net #winforms

Вопрос:

Я использую систему.Windows.Формы.Folderbrowserialog, позволяющий пользователю выбирать местоположение. Расположение по умолчанию, которое пользователь может переопределить, находится в %appdata% .

Пока пользователь находится где-то ниже%appdata% (диалоговое окно открывается в текущем заданном местоположении, поэтому по умолчанию оно находится под «AppData»), он может видеть и выбирать «Local», «LocalLow» и «Roaming», которые обычно скрыты, как и сама папка «AppData».

Я не хочу касаться настроек Windows для отображения скрытых файлов и т. Д. Но я не нахожу никакого свойства, которое позволило бы мне показывать все скрытые файлы / папки по умолчанию.

Чего мне не хватает?

(Я уже взглянул на MSDN)

Я добавил несколько скриншотов:

Скрытые папки видны, поскольку начальный каталог был «локальным»: Скрытые папки видны

Скрытые папки НЕ видны: Скрытые папки не видны

заранее спасибо.

Ответ №1:

Почти очень грязное решение — изменить значение реестра HKCUSoftwareMicrosoftWindowsCurrentVersionExplorerAdvancedHidden при загрузке вашего окна и восстановить его до предыдущего значения при его закрытии.

Комментарии:

1. Спасибо за ваш отзыв, но я не хочу касаться настроек Windows. Если по какой-либо причине приложение завершит работу во время выполнения этого, я изменил среду пользователя. Кроме того, приложение будет запущено с ограниченными правами, поэтому мне может быть запрещено выполнять это действие в конце концов. В любом случае, это может помочь другим, поэтому 1

Ответ №2:

Элемент управления учитывает настройки пользователя. Итак, если вы не будете изменять настройки пользователя, и вы правы, что не поддаетесь искушению сделать это, скрытые папки не будут отображаться.

Комментарии:

1. спасибо за ваш ответ — я все еще надеюсь на какой-то хак или обходной путь.

2. Если пользователь хочет увидеть скрытые папки, он может попросить их показать. Это, казалось бы, очевидное решение.

Ответ №3:

В дополнение к folderbrowserialog, вы могли бы разрешить пользователю вводить путь в текстовое поле или поле со списком. В то время как автозаполнение не покажет системные или скрытые папки, открытие folderbrowserialog со скрытой или системной папкой в качестве выбранного пути приведет к отображению папки и ее вложенных папок в диалоговом окне.