Как я использую класс OpenFileDialog, таким образом, что он открывается на Сетевой зоне как значение по умолчанию?

Как я использую класс OpenFileDialog (в C#, WPF и т.д.) таким образом, что он открывается на Сетевой зоне как значение по умолчанию?

Это не работает:

  OpenFileDialog openFileDialog1 = new OpenFileDialog();
  openFileDialog1.InitialDirectory = "Network";

Я также пытался иметь "\" как InitialDirectory, и это не работало.

Я также пытался иметь "\\" как InitialDirectory, и это не работало также.

5
задан xarzu 12 May 2010 в 19:51
поделиться

2 ответа

Я не пробовал, но это должно работать:

openFileDialog1.InitialDirectory = Environment.GetFolderPath(Environment.SpecialFolder.NetworkShortcuts);

Environment.GetFolderPath возвращает путь, соответствующий Environment. Запись перечисления SpecialFolder в виде строки.

Environment.SpecialFolder.NetworkShortcuts определяется как

Каталог файловой системы, содержащий объекты ссылок, которые могут существовать в виртуальной папке Мое сетевое окружение.

8
ответ дан 14 December 2019 в 01:03
поделиться

Настройка диалогового окна открытия файла из журнала Microsoft MSDN Magazine содержит много информации в диалоговом окне. У меня не было возможности прочитать все это, но это привлекло мое внимание:

Панель пользовательских мест
...

Вам понадобится запись REG_SZ, если имя папки является абсолютным или относительный путь. Вам необходимо использовать номер папки, если вы хотите настроить таргетинг на особую папку (список см. На Рисунке 6). В этом случае требуется запись REG_DWORD.

Рисунок 6

Идентификаторы папок

Идентификаторы папки
0 Рабочий стол
2 Папка "Программы" в меню "Пуск"
3 Панель управления
4 принтера
5 Мои документы
6 избранных
7 Папка автозагрузки в меню "Пуск"
8 последних файлов
9 Отправить на
10 корзин
12 Меню "Пуск"
17 Мой компьютер
18 Мое сетевое окружение
20 Fonts

Я пропустил целую кучу материала (потому что это очень длинная статья), но похоже, что вы можете установить значение ID равным 18, чтобы получить свои сетевые места. Однако, как указывает @Nelson, это может выглядеть так, как будто он добавляет запись в панель, поэтому дважды проверьте ее перед использованием.Как я сказал ранее, сообщение, на которое я указал, содержит много информации, так что все, что вам нужно, вполне может быть где-то похоронено.

Обновление:

На ПК с Windows 7 это не работает. например:

OpenDialogPlaces o = new OpenDialogPlaces();
//o.Places.Add(18);
//o.Places.Add(5);
//o.Places.Add(6);
o.Init();
o.OpenDialog.ShowDialog();
o.Reset();

Все еще показывает все слева:

enter image description here

Это работало в предыдущих версиях Windows:

enter image description here

Еще одна вещь, похоже, Microsoft изменила расположение ComDlg32, я попробовал оба места, но безуспешно.

enter image description here

1
ответ дан 14 December 2019 в 01:03
поделиться
Другие вопросы по тегам:

Похожие вопросы: