0
在調試模式下,在運行C#WinForms應用程序,之後我通過打開文件對話框中選擇文件時,我得到的C#WinForms - OpenFileDialog MultiSelect錯誤:「索引超出了數組的範圍。」
Error: Could not read file from disk.
Original error: Index was outside the bounds of the array.
你有關於如何解決此錯誤的任何想法?
這裏是我的代碼:
// When the user clicks on Select Files Button, this happens
private void sourceFiles_Click(object sender, EventArgs e)
{
Stream myStream;
int i = 0;
OpenFileDialog sourceFileOpenFileDialog = new OpenFileDialog();
this.sourceFileOpenFileDialog.InitialDirectory = "i:\\CommissisionReconciliation\\Review\\";
this.sourceFileOpenFileDialog.Filter = "Excel Files (*.xls;*.xlsx;)|*.xls;*.xlsx;|" + "All Files (*.*)|*.*";
this.sourceFileOpenFileDialog.FilterIndex = 2;
this.sourceFileOpenFileDialog.RestoreDirectory = true;
this.sourceFileOpenFileDialog.Multiselect = true;
this.sourceFileOpenFileDialog.Title = "Please Select Excel Source File(s) for Consolidation";
if (this.sourceFileOpenFileDialog.ShowDialog() == DialogResult.OK)
{
try
{
string tempFolder = System.IO.Path.GetTempPath();
foreach (string FileName in this.sourceFileOpenFileDialog.FileNames)
{
this.sourceFileOpenFileDialog.FileNames[i] = FileName;
listBoxSourceFiles.Items.Add(FileName);
Log("Source Files: " + sourceFileOpenFileDialog.FileNames[i]);
i++;
System.IO.File.Copy(FileName, tempFolder + @"\" + FileName);
}
}
catch (Exception ex)
{
MessageBox.Show("Error: Could not read file from disk. Original error: " + ex.Message);
}
}
}
//method for the sourcefileOpenFileDialog. Do I need anything here?
private void sourceFileOpenFileDialog_FileOk(object sender, CancelEventArgs e)
{
}
//method for the listbox. Do I need anything here?
private void listBoxSourceFiles_SelectedIndexChanged(object sender, EventArgs e)
{
}
謝謝!
@Daniel,謝謝你的迴應!我改變了代碼,現在得到以下錯誤:「給定路徑的格式不支持。」任何想法如何解決這個問題?在日誌窗口中,對於所選的3個文件,它會顯示「Source Files:System.String []」3次。 – 2011-03-30 16:31:13
@Brian:FileName是一個完整的路徑。只需看一看你的觀察窗口中的'tempFolder + @「\」+ FileName'結果即可。它將類似於「C:\ Windows \ Temp \ C:\ FileSelectedByUser.txt」。 – 2011-03-30 16:32:38
@Brian:更新我的答案,看看。 – 2011-03-30 16:37:40