C # OpenFileDialog Блокировка в каталог - PullRequest
7 голосов
/ 28 октября 2009

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

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

Спасибо

Ответы [ 4 ]

2 голосов
/ 14 января 2014

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

   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();

            }                       
        }
2 голосов
/ 28 октября 2009

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

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

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

1 голос
/ 28 октября 2009

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

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

1 голос
/ 28 октября 2009

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

...