我想读取列表中多个 csv 文件的内容,并使用此列表来拆分 datagridview 中的内容。问题是,使用这段代码我只能获取文件名,但不能获取文件的内容。如何阅读内容?下面你可以看到代码。public List<string> GetFileList(string strFilePath, bool SubFolders){ List<string> FileArray = new List<string>(); var fileContent = string.Empty; var filePath = string.Empty; using (OpenFileDialog openFileDialog = new OpenFileDialog()) { openFileDialog.InitialDirectory = "C:\\Users\\blabla\\Desktop\\folder\\files"; openFileDialog.Filter = "csv files (*.csv)|*.csv|All files (*.*)|*.*"; openFileDialog.FilterIndex = 2; openFileDialog.RestoreDirectory = true; openFileDialog.Multiselect = true; if (openFileDialog.ShowDialog() == DialogResult.OK) { try { string[] Files = System.IO.Directory.GetFiles(strFilePath); string[] Folders = System.IO.Directory.GetDirectories(strFilePath); for (int i = 0; i < Files.Length; i++) { FileArray.Add(Files[i].ToString()); } if (SubFolders == true) { for (int i = 0; i < Files.Length; i++) { FileArray.AddRange(GetFileList(Folders[i], SubFolders)); } } } catch (Exception Ex) { throw (Ex); } return FileArray; } return FileArray; }}我希望将 FileArray 中的内容用于 datagridview,但我只获取文件名。非常感谢您的帮助!
2 回答
波斯汪
TA贡献1811条经验 获得超4个赞
您只获得文件名,因为您只读取文件名:)
你需要使用
string[] lines = System.IO.File.ReadAllLines(Files[i].ToString()); FileArray.AddRange(lines)
在你的程序中。
MSDN 指出:
系统.IO.目录.GetFiles
返回满足条件的文件名
指定的标准。
因此,您需要打开每个文件,读取其中的所有内容并将其添加到返回变量中。
白衣非少年
TA贡献1155条经验 获得超0个赞
您可以导入命名空间 Microsoft.VisualBasic.FileIO 吗?如果是,那么您可能会查看 TextFieldParser 类。这是一个非常舒适的类,可以导入 CSV 文件并逐行读取它们。然后,您可以在循环中用相应的数据填充目标集合。
- 2 回答
- 0 关注
- 167 浏览
添加回答
举报
0/150
提交
取消