c# - 如何在c#中读取列表中多个csv文件的内容
问题描述
我想读取列表中多个 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,但我只得到文件名。非常感谢您的帮助!
解决方案
您只获得文件名,因为您只读取文件名:)
你需要使用
string[] lines = System.IO.File.ReadAllLines(Files[i].ToString());
FileArray.AddRange(lines)
在你的程序中。
MSDN 状态:
System.IO.Directory.GetFiles
返回满足的文件名
规定的标准。
因此,您需要打开每个文件,从中读取所有内容并将其添加到返回变量中。
推荐阅读
- django - Django - 如何获取 ForeignKey 查询元素的图像字段?
- r - 根据其中一个数字序列字段重复 df
- twig - 无法从字段集合中获取价值
- angular2-nativescript - NativeScript:我必须为 Android + iOS + Web 应用程序开发一个离线应用程序。离线数据将存储在 SQLite DB 中
- python - JSON数据中的Django搜索查询
- javascript - 全局变量赋值的 JavaScript 问题
- jquery - JQuery 验证问题:我在同一页面上有 2 个表单,每个表单在 2 个不同的选项卡中,但只有一个验证不起作用
- kotlin-multiplatform - Kotlin 多平台并发可变性 iOS vs Android
- sqlite - Sqlite 序列与自动增量列无关
- haskell - IHP Haskell 字段显示格式 双值