将文件名和安全文件名添加到DataGridView

时间:2014-07-07 01:28:50

标签: datagridview openfiledialog

这看起来应该很简单。我有一个程序,当我使用OpenFileDialog时,它会在两个单独的列中提取文件名和文件路径。我正在使用一个foreach语句,为OpenFileDialog中选择的每个文件添加一行(注意,我在我的ofd中使用了多选)。

当我选择一个文件时,一切都很好,因为数组中只有一个文件名(字符串)。当我选择2个文件时,我的DataGridView中添加了四行。我知道我不应该在foreach函数中使用2 dataGridView1.Rows.Add个语句。

是否有一种简单的方法可以在不使用Add的{​​{1}}部分的情况下将数组添加到列中?我想在第三列(来自我的OpenFileDialog数组)的每个单元格中添加一个字符串,但是每次都不添加一行。

dataGridView1.Rows.Add

enter image description here

我也尝试了以下内容,并在下面的屏幕截图中收到了结果:

 private void button1_Click(object sender, EventArgs e)
        {
            ofd.Filter = "*.SFP, *.SFL|*.sfp; *.sfl";
            ofd.Multiselect = true;


        if (ofd.ShowDialog() == System.Windows.Forms.DialogResult.OK)
        {
            string[] selectedFiles = ofd.SafeFileNames;
            string[] filePaths = ofd.FileNames;

            foreach (string selectedFile in selectedFiles)
            foreach (string filePath in filePaths)
            {
                dataGridView1.Rows.Add(selectedFile, "", filePath);
            }
        }
    }

enter image description here

我真的认为这很简单。新程序员在这里。谢谢你的帮助。

1 个答案:

答案 0 :(得分:0)

openFileDialog1.Multiselect = true;
        if (openFileDialog1.ShowDialog() == System.Windows.Forms.DialogResult.OK)
        {
            string[] selectedFiles = openFileDialog1.SafeFileNames;
            string[] filePaths = openFileDialog1.FileNames;
            for (int i = 0; i < openFileDialog1.FileNames.Count() - 1; i++)
            {
                dataGridView1.Rows.Add(selectedFiles[i], filePaths[i]);
            }
        }