我制作了幻灯片节目。当我加载一个里面有图像的文件夹时,它工作正常。当我加载没有图像的文件夹时,它会产生错误。可能是什么问题?
这是我的代码。
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]);
}
}
答案 0 :(得分:2)
如果没有文件,那么folderFile.Length == 0
和showImage(folderFile[selected]);
将抛出异常,因为数组中根本没有元素,也没有0索引。它是数组边界之外的访问。你应该检查数组边界:
if (folderFile.Length > 0)
showImage(folderFile[selected]);