Вопрос

Я создаю программное обеспечение, которое должно ТОЛЬКО позволять людям выбирать файлы и папки с помощью OpenFileDialog, которые находятся в том же каталоге, что и программа, и находятся в более глубоких папках.Я не хочу, чтобы OpenFileDialog мог выбирать что-то за пределами текущего каталога программы.Возможно ли это сделать на С# с помощью OpenFileDialog?

пожалуйста, дайте мне знать

Спасибо

Это было полезно?

Решение

вы можете проверить правильность пути после выбора

если это просто принять или отправить сообщение, скажите ему, что вы выбрали другой каталог

Другие советы

Я не вижу никакой встроенной поддержки со стороны элемента управления OpenFileDialog.Однако вы можете попробовать следующее:

Задайте для свойства InitialDirectory путь к вашей программе.Затем, если пользователь выберет определенный путь за пределами пути вашей программы, используйте событие FileOk, чтобы проверить это и вернуть его в InitialDirectory.

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

Вот как я это сделал.

   openFileDialog1.InitialDirectory = Path.Combine(Path.GetDirectoryName(Application.StartupPath), "FolderName");

        if (openFileDialog1.ShowDialog() == DialogResult.OK)
        {            
                while(Path.GetDirectoryName(openFileDialog1.FileName) != Path.Combine(Path.GetDirectoryName(Application.StartupPath), "FolderName")){

                    MessageBox.Show("Please select .EXE which is in the default folder", "Wrong folder", MessageBoxButtons.OK, MessageBoxIcon.Information);
                openFileDialog1.ShowDialog();

            }                       
        }

Боюсь, ты не сможешь.Большинство людей создали свой собственный диалог для этого сценария.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top