2017-07-28 34 views
0

我想知道如何將文件名轉換爲數組並將文件名加載到CSV文件。例如,這是文件名File_1_20170428101607。我希望將文件名(日期和時間格式 - 2017/4/28 10:16:07)解析爲輸出文件(csv文件)中的列。這是時間的代碼,你可以請檢查,以及如何添加時間數組解析到CSV文件?如何給C#控制檯數組添加時間

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; 

     } 
+0

你只需要抓住包含日期和時間的文件名的部分並返回一個字符串,或者你需要它作爲一個'DateTime'? –

+0

我需要它作爲csv文件中第一列的日期時間。 – RainyDay

回答

0

你可以試試這個:

首先創建一個StringBuilder將包含CSV內容:

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 loopStringBuilder內容保存到您的CSV文件:

File.WriteAllText(filePath, csv.ToString()); 
+0

什麼意思是「將StringBuilder內容保存到您的csv文件中:」 – RainyDay

+0

我的意思是創建新文件。我想將列添加到現有文件中,可以從中讀取所有文本,編輯添加新列,然後替換文件內容。 – daniell89

相關問題