取消OpenFileDialog时如何防止异常?

问题描述 投票:-2回答:1

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

这是我的代码:

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 "";
    }
}

如何解决这种情况?

c# openfiledialog
1个回答
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 }
© www.soinside.com 2019 - 2024. All rights reserved.