我正在接收來自目錄的所有.csv文件,從每個使用CSVhelper的文件中取出幾列,然後寫入新的.csv文件。但是,當我試圖接收文件時,它似乎只採取目錄中的最後一個文件,我無法理解爲什麼。我把文件中是這樣的:使用CSVhelper接收多個.csv文件
static void Main(string[] args)
{
string sourceDirectory = @"C:\Users\SourceDirectory";
var csvFiles = Directory.EnumerateFiles(sourceDirectory, "*.csv", SearchOption.AllDirectories);
foreach (string currentFile in csvFiles)
{
readFile(currentFile);
}
}
,然後執行這些文件中的變化,例如:
public static void readFile(string currentFile)
{
using (var sr = new StreamReader(currentFile))
{
using (var sw = new StreamWriter(@"C:\Users\newFile.csv"))
{
var reader = new CsvReader(sr);
var writer = new CsvWriter(sw);
//CSVReader will now read the whole file into an enumerable
IEnumerable dataRecord = reader.GetRecords<dataRecord>().ToList();
foreach (dataRecord record in dataRecord)
{
//Choose which data values you want to keep
writer.WriteField(record.info1);
writer.WriteField(record.info2);
writer.WriteField(record.info3);
//Moves the pointer onto the next record
writer.NextRecord();
}
我不明白爲什麼它不把所有的文件和更糊塗了至於爲什麼只採取最後?
難道它會通過你的所有的源文件,但你的代碼是在結束它覆蓋每次輸出文件,所以只包含最後一個的輸出。 – Andy