取消OpenFileDialog时如何防止异常?

时间:2018-03-01 23:26:00

标签: c# openfiledialog

我点击按钮上传照片。当我取消照片选择时,程序会抛出异常。

这是我的代码:

private void button1_Click(object sender, EventArgs e)
{
    Image<Bgr, byte> img = new Image<Bgr, byte>(Islem.getFileName());
    ımageBox1.Image = img;
}

class Islem
{
    public static string getFileName()
    {
        OpenFileDialog ofd = new OpenFileDialog();
        ofd.Filter = "Images (*.BMP;*.JPG;*.GIF)|*.BMP;*.JPG;*.GIF|" + "All files (*.*)|*.*";
        if (ofd.ShowDialog() == DialogResult.OK)
        {
            return ofd.FileName;
        }
        return "";
    }
}

如何解决这种情况?

1 个答案:

答案 0 :(得分:0)

当用户取消对话框时,getFileName函数返回一个空字符串。因此,当您尝试从不存在的路径(即空字符串)加载图像时,会出现异常。如果您阅读了异常消息,您可以自己解决。

您可以这样做:

private void button1_Click(object sender, EventArgs e)
{
    string imgFilePath = Islem.getFileName();
    if (!string.IsNullOrEmpty(imgFilePath))
    {
        Image<Bgr, byte> img = new Image<Bgr, byte>(imgFilePath);
        ımageBox1.Image = img;
    }
}

如果返回的字符串不为空,那只会使用文件路径(即加载图像)。

或者,您可以检查文件是否存在:

if (System.IO.File.Exists(imgFilePath)) { //use it to load the image }
相关问题