我正在制作一个软件,只需要允许人们使用OpenFileDialog选择文件和文件夹,这些文件和文件夹与程序位于同一目录中并位于更深的文件夹中。我不希望OpenFileDialog能够选择程序当前目录之外的东西。这可以在C#中使用OpenFileDialog吗?

请告诉我

由于

有帮助吗?

解决方案

您可以选择

后检查路径是否正确

如果它只是接受或发送消息框告诉他你选择不同的目录

其他提示

OpenFileDialog Control没有看到任何开箱即用的支持。但是,您可以尝试以下方法,

将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