我必须列出目录中的所有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文件中写下其他条目。
答案 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);
}
}