[英]How to first 'Split a string to an Array' then 'Add something to that Array'? || C# Console App
[英]how to add time to C# console array
我想知道如何將文件名放入數組並將文件名加載到CSV文件。 例如,這是文件名File_1_20170428101607。 我希望將文件名(日期和時間格式– 28/04/2017 10:16:07)解析為輸出文件(csv文件)中的一列。 這是時間代碼,您能檢查一下如何將時間解析為csv文件嗎?
private static string[] GetFileNames(string path, string filter)
{
string fileName = @”C:\\Desktop\\File_1_20170428101607.csv”;
string result;
result = Path.GetFileName(fileName);
Console.WriteLine(“GetFileName(‘{0}’) returns ‘{1}'”,
fileName, result);
string[] files = Directory.GetFiles(path, filter);
for (int i = 0; i parsing was not possible -> return null
{
return null;
}
}
private static DateTime? ParseDateFromFilename(string filename)
{
//regex is used to extract the 14 digit timestamp from filename
var timestamp = Regex.Match(filename, @"\d{14}$");
if (!timestamp.Success)
{
//if no match was found return null
return null;
}
try
{
//try to parse the date with known timestamp and return
return DateTime.ParseExact(timestamp.Value, "yyyyMMddHHmmss", CultureInfo.InvariantCulture);
}
catch
{
//any error -> parsing was not possible -> return null
return null;
}
您可以嘗試以下方法:
首先創建一個將包含csv內容的StringBuilder
:
StringBuilder csv = new StringBuilder();
string filePath = "...";
接下來創建一個for loop
並獲取兩列的值,並將其附加到StringBuilder
//for loop start
string fileName = "File_1_20170428101607";
string datePart = fileName.Split('_').Last();
DateTime dt = DateTime.ParseExact(datePart, "yyyyMMddhhmmss", null);
string dateString = dt.ToString("dd/mm/yyyy hh:MM:ss", System.Globalization.CultureInfo.InvariantCulture);
var firstColVal = fileName;
var secondColVal = dateString;
var newLine = string.Format("{0},{1}", firstColVal, secondColVal);
csv.AppendLine(newLine);
//loop end
在for loop
之后for loop
將StringBuilder
內容保存到您的csv文件中:
File.WriteAllText(filePath, csv.ToString());
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.