我想讀取列表中多個 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 關注
- 227 瀏覽
添加回答
舉報
0/150
提交
取消