我正在制作一个软件,它只需要允许人们使用 OpenFileDialog 选择与程序位于同一目录中且位于更深文件夹中的文件和文件夹。我不希望 OpenFileDialog 能够选择程序当前目录之外的内容。使用 OpenFileDialog 在 C# 中可以做到这一点吗?
请告诉我
谢谢
我正在制作一个软件,它只需要允许人们使用 OpenFileDialog 选择与程序位于同一目录中且位于更深文件夹中的文件和文件夹。我不希望 OpenFileDialog 能够选择程序当前目录之外的内容。使用 OpenFileDialog 在 C# 中可以做到这一点吗?
请告诉我
谢谢
我没有看到 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();
}
}
恐怕你不能。大多数人为此场景创建了自己的自定义对话框。
选择后可以检查路径是否正确
如果它只是接受或发送消息框告诉他你选择不同的目录