当我加载没有图像的文件夹时,winforms会生成错误

时间:2013-12-13 01:43:40

标签: c# picturebox

我制作了幻灯片节目。当我加载一个里面有图像的文件夹时,它工作正常。当我加载没有图像的文件夹时,它会产生错误。可能是什么问题?

这是我的代码。

private void openSlideShowFolder_Click(object sender, EventArgs e)
{
    if(folderBrowserDialog1.ShowDialog() == DialogResult.OK)
    {
        string[] pics1 = Directory.GetFiles(folderBrowserDialog1.SelectedPath, "*.jpg");
        string[] pics2 = Directory.GetFiles(folderBrowserDialog1.SelectedPath, "*.jpeg");
        string[] pics3 = Directory.GetFiles(folderBrowserDialog1.SelectedPath, "*.bmp");
        folderFile = new string[pics1.Length + pics2.Length + pics3.Length];
        Array.Copy(pics1, 0, folderFile, 0, pics1.Length);
        Array.Copy(pics2, 0, folderFile, pics1.Length, pics2.Length);
        Array.Copy(pics3, 0, folderFile, pics1.Length + pics2.Length, pics3.Length);
        selected = 0;
        showImage(folderFile[selected]);
    }
}

1 个答案:

答案 0 :(得分:2)

如果没有文件,那么folderFile.Length == 0showImage(folderFile[selected]);将抛出异常,因为数组中根本没有元素,也没有0索引。它是数组边界之外的访问。你应该检查数组边界:

if (folderFile.Length > 0)
    showImage(folderFile[selected]);