2013-12-13 37 views
1

我做了一个幻灯片程序。当我加载一个包含图像的文件夹时,它工作正常。当我加载一个没有图像的文件夹时,它会产生一个错误。可能是什么问题?当我加载一个没有图像的文件夹时winforms产生错误

这是我的代码。

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]); 
    } 
} 
+3

什么可能是错误是?请提供错误讯息? – Alec

回答

2

当你有没有文件,然后folderFile.Length == 0showImage(folderFile[selected]);将抛出一个异常,因为在所有在0指数中也没有数组元素。它是数组边界之外的访问。你应该检查数组边界:

if (folderFile.Length > 0) 
    showImage(folderFile[selected]); 
相关问题