创建具有特定条目的CSV文件

时间:2014-01-21 14:19:10

标签: c# csv

我必须列出目录中的所有PDF文件,并创建一个csv文件,其中包含所有PDF文件的名称。

此外,CSV文件中还应包含其他条目,如创建日期和条形码。

条目应以“#_#”分隔。

CSV文件应如下所示:

Description          Date                  Barcode                          PDFName

SAP_Eingang#_#2014.01.14 12:34:44#_#01001019000516572013#_#01001019000516572013_2014_01_14_12_34_44_662.pdf
SAP_Eingang#_#2014.01.14 12:35:44#_#01001019000516572014#_#01001019000516572014_2014_01_14_12_35_44_662.pdf
SAP_Eingang#_#2014.01.14 12:36:44#_#01001019000516572015#_#01001019000516572015_2014_01_14_12_36_44_662.pdf

我已经使用此代码列出了CSV文件中的所有PDF:

string[] fileArray = Directory.GetFiles(@"c:\test\", "*.pdf").Select(path =>Path.GetFileName(path)).ToArray();
System.IO.File.WriteAllLines(@"c:\test2\test.csv",fileArray);      

但我不知道如何在CSV文件中写下其他条目。

2 个答案:

答案 0 :(得分:1)

改为使用DirectoryInfo:

const string description = "SAP_Eingang";
const string separator = "#_#";


//open csv file in a using statement

DirectoryInfo di = new DirectoryInfo(@"c:\test\");
FileInfo[] files = di.GetFiles("*.pdf");
foreach(FileInfo fi in files) {
  string[] columns = new string[4];
  columns[0] = description;
  columns[1] = fi.CreationTime.ToString("yyyy.MM.dd hh:mm:ss");
  columns[2] = fi.Name.Substring(0, 20);
  columns[3] = fi.Name;
  string line = String.Join(separator, columns);

  //write line into the csv file

}

//close the using statement

我还没有编译上面的代码,但你明白了

答案 1 :(得分:0)

我的代码现在是:

using (StreamWriter rdr = new StreamWriter(@"C:\test2\test.csv"))
{
  const string description = "SAP_Eingang";
  const string separator = "#_#";

  DirectoryInfo di = new DirectoryInfo(@"c:\test\");
  FileInfo[] files = di.GetFiles("*.pdf");
  foreach (FileInfo fi in files)
    {
      string[] columns = new string[4];
      columns[0] = description;
      columns[1] = fi.CreationTime.ToString("yyyy.MM.dd hh:mm:ss");
      columns[2] = fi.Name.Substring(0, 20);
      columns[3] = fi.Name;
      string line = String.Join(separator,columns);

      rdr.WriteLine(line);
     }
 }