我正在嘗試讀取目錄中的多個 CSV 檔案,使用 c# 根據特定前綴適當地處理和過濾這些檔案。然后我想將每一行寫入包含該前綴的新 CSV 檔案。CSV 標頭保持不變。
例如,我在處理之前有一個 CSV 檔案:

如果一行中有一個以 BAK 開頭的前綴作為示例,我想將所有資料行提取到具有該前綴的新 CSV 檔案中,因此我的 CSV 將如下所示。請注意,前綴可能并不總是在同一個地方。
處理后的CSV:

我看過其他問題和答案,覺得這些都沒有解決我的問題。
到目前為止我所擁有的(C#):
static void Main(string[] args) {
string sourceDirectory = @"C:\temp\csvfiles\";
var csvFiles = Directory.EnumerateFiles(sourceDirectory, "*.csv", SearchOption.AllDirectories);
foreach (string currentFile in csvFiles) {
//How do I read in only the specfic rows that I need containing certain prefixes
}
}
uj5u.com熱心網友回復:
您需要讀取并決議輸入檔案的每一行,然后檢查資料以確定是否應將其寫入輸出檔案。
我不知道你有多少決議 CSV 檔案的經驗。有許多可用的方法可以縮短作業時間。我可以推薦我自己的CsvParser嗎?
uj5u.com熱心網友回復:
static void Main(string[] args)
{
string sourceDirectory = @"C:\temp\csvfiles\";
var csvFiles = Directory.EnumerateFiles(sourceDirectory, "*.csv", SearchOption.AllDirectories);
foreach (string currentFile in csvFiles)
{
//How do I read in only the specfic rows that I need containing certain prefixes
foreach (string line in File.ReadAllLines(currentFile).Where(m => m.Split(';').Last().Contains("BAK")))
{
Console.WriteLine(line);
}
}
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/339744.html
