2

如问题中所述。我想从多个目录中读取文件并将其全部显示在一个 datagridview 中。我发现一个有同样的问题,但那个是使用 List<>.AddRange 来获取目录,而我正在使用 string[]。请帮忙。这是我获取目录和文件的代码片段:

s1 = Directory.GetFiles(@"C:\Documents and Settings\Administrator\Desktop\FILE\7", "*.*");

这是为了阅读它并将其填充到 datagridview 中:

for (int i = 0; i <= s1.Length - 1; i++)
        {

            try
            {
                if (i == 0)
                {
                    dt.Columns.Add("File_Name");
                    dt.Columns.Add("File_Type");
                    dt.Columns.Add("File_Size");
                    dt.Columns.Add("Create_Date");
                }

                FileInfo info = new FileInfo(s1[i]);
                FileSystemInfo sysInfo = new FileInfo(s1[i]);
                dr = dt.NewRow();

                dr["File_Name"] = sysInfo.Name;
                dr["File_Type"] = sysInfo.Extension;
                dr["File_Size"] = (info.Length / 1024).ToString();
                dr["Create_Date"] = sysInfo.CreationTime.Date.ToString("dd/MM/yyyy");
                dt.Rows.Add(dr);


                if ((info.Length / 1024) > 1500000)
                {
                    MessageBox.Show("" + sysInfo.Name + " had reach its size limit.");
                }



                if (dt.Rows.Count > 0)
                {
                    dataGridView1.DataSource = dt;
                }
            }
            catch (UnauthorizedAccessException ex)
            {
                MessageBox.Show("Error : " + ex.Message);
                continue;
            }
        }

   }
4

1 回答 1

3
List<string> s1 = System.IO.Directory.GetFiles(@"C:\Documents and Settings\Administrator\Desktop\FILE\7", "*.*").ToList<string>();
s1.AddRange(System.IO.Directory.GetFiles(@"C:\Documents and Settings\Administrator\Desktop\FILE\9", "*.*").ToList<string>());

等等……然后

foreach(s1 中的字符串 s) .....

于 2012-04-05T09:11:56.480 回答