Я работаю над загрузочным приложением установщика, и у меня есть диалог, который пользователь может открыть, чтобы выбрать другой целевой каталог из заданного по умолчанию. В настоящее время я использую CFolderDialog
для этого, но чтобы пользователь мог выбрать папку, которая еще не существует, он должен сначала создать папку. После того, как пользователь указал каталог, я хочу иметь возможность удалить его, чтобы при запуске установщика он мог создать саму папку, помеченную для удаления. Кроме того, если пользователь отменяет загрузку моего приложения в любое время, я не хочу, чтобы какие-либо нежелательные папки валялись вокруг, когда пользователь перебирал браузер папок. У меня проблема в том, что, если я пытаюсь удалить папку, созданную пользователем при поиске новой целевой папки, я получаю ошибку нарушения общего доступа. (Я сравниваю время создания каталога с системным временем на момент запуска диалога, чтобы убедиться, что я могу удалить каталог.)
Мне нужен либо способ обойти это нарушение совместного доступа, либо другой стандартный диалог, в котором пользователю не нужно создавать новый каталог для его указания только потому, что он еще не существует.
Редактировать: Когда я первоначально разместил это, я забыл, что используемый мной диалог папки - это на самом деле Диалог XFolder на сайте Code Project . Хотя он позволяет пользователю просматривать каталог, он не настолько интуитивен, как диалоги браузера папок, которые я видел в установщиках в прошлом. Что я действительно хочу, так это то, что пользователь может перейти к папке, в которую должна пойти его новая папка, а затем просто добавить новую папку к пути в окне редактирования диалога, не создавая новую папку.
Обновление Поскольку диалог XFolder представляет собой настройку стандартного диалога «Открыть файл», в котором используется шаблон, он не работает в Vista или более новых ОС. Из-за этого я должен отказаться от использования этого для чего-то другого. Я все еще ищу решение здесь. Если кто-то может показать мне, как установить начальный каталог (в отличие от корневого каталога) при использовании SHBrowseForFolder (), я хотел бы использовать это в качестве своего решения.