#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 со скрытой или системной папкой в качестве выбранного пути приведет к отображению папки и ее вложенных папок в диалоговом окне.