С# SaveFileDialog в определенной папке
Я использую SaveFileDialog
, чтобы выбрать путь, где я хочу сохранить файл. Я установил InitialDirectory
в какую-то папку, но я хочу ограничить места сохранения этой папкой или подпапками этой папки. Возможно ли это?
SaveFileDialog dialog = new SaveFileDialog();
dialog.InitialDirectory = "SomePath"//this is the path that I want to be root folder
Ответы
Ответ 1
Нет, это невозможно.
Вы не можете прямо установить это как свойство в SaveFileDialog
. Но вы можете попытаться сделать это, используя событие FileOk
, чтобы проверить, находится ли файл в этом каталоге и отменить событие!
dialog.FileOk +=
delegate (object sender, CancelEventArgs e)
{
if (dialog.FileName is in wrong directory)
{
e.Cancel = true;
}
};
Как уже упоминалось, следующий лучший вариант - создать свой собственный диалог!
Ответ 2
Некоторые решения, которые приходят на ум, следующие:
Отобразить ошибку после выбора файла
Не так приятно, как предотвращать пользователя в первую очередь, но он не требует большого количества кода и довольно прост.
Создайте собственный экран выбора файлов
Очень больно выглядеть как все, к чему привык пользователь. Делает много кода.
Ответ 3
То, что я могу думать, может быть вне темы, потому что это не связано с Программой, и это может быть сложно.
Пока вы устанавливаете приложение, вы должны создать конкретного пользователя в Windows только для своего приложения.
Чем вы можете начать свое приложение. как этот пользователь, использующий приложение. Файл манифеста.
После этого вы можете указать, что конкретное разрешение пользователя для записи только в корневой папке, это как OS будет контролировать это.
PS: Я не думаю, что если это решение будет платить само по себе, но это может сработать.
Salute