C# OpenFileDialog锁定到目录

10

我正在制作一款软件,需要使用 OpenFileDialog让用户仅能选择与程序在同一目录下或更深目录中的文件和文件夹。我不希望 OpenFileDialog 能够选择程序当前目录以外的任何东西。在 C# 中,使用 OpenFileDialog 实现这个功能是否可能?

请告诉我,谢谢。


重新标记为“打开文件对话框锁定到目录树”。 - pyrocumulus
2
我知道那些对话框可以被覆盖和定制...看看这个。 - Letterman
4个回答

3
这是我做到的方法。
   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();

            }                       
        }

3
我没有看到 OpenFileDialog 控件有开箱即用的支持。然而,您可以尝试以下方法:
将 InitialDirectory 属性设置为您的程序路径。然后,如果用户选择了程序路径之外的特定路径,请使用 FileOk 事件检查并将其带回 InitialDirectory。
如果您想要更多控制,则必须编写自定义对话框。

1

很抱歉,您不能这样做。大多数人为此场景创建了自己的自定义对话框。


这似乎是正确的。http://social.msdn.microsoft.com/Forums/en-US/csharpgeneral/thread/ae322891-fd55-4027-ae4f-53100ae32852 - RCIX

1

在选择后,您可以检查路径是否正确

如果只是接受或发送消息框,请告诉他您选择了不同的目录


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接