2013-03-21 47 views
0

我正在成功將數據寫入csv文件(yay!)在控制檯應用程序中。直到現在,Streamwriter對我來說都非常出色。c#streamwriter在文件創建時添加行

using (StreamWriter writer = new StreamWriter(file, true)) 
{ 
    writer.WriteLine(strToSave); 
} 

此代碼追加到現有的文件,或者如果它不存在,首先創建一個新的文件,然後寫道。

我想要它做的是,如果該文件不存在,創建該文件,爲csv列寫一個標題行,然後像平常一樣寫入數據。我怎樣才能做到這一點?

謝謝。

+0

http://whathaveyoutried.com的length屬性? – Yahya 2013-03-21 09:47:10

+0

如果您確定沒有其他進程會同時與該文件混淆,則可以使用if(File.Exists(file))... ...採取不同的路徑。 – 2013-03-21 09:47:29

+0

打開流之前可以使用FileInfo類exists方法檢查它是否存在 – 2013-03-21 09:47:54

回答

5

您可以使用File.Exists()方法首先檢查天氣文件是否存在。如果文件已經存在,則不需要寫入標題,如果存在值爲false,則寫入標題(假設.csv的標題位於變量header中),然後寫入所需的文本。

 bool exists = File.Exists(file); 
     using (StreamWriter writer = new StreamWriter(file, true)) 
     { 
      if(!exists) 
       writer.WriteLine(header); 
      writer.WriteLine(strToSave); 
     } 
+0

確實非常整潔的解決方案! – Yahya 2013-03-21 09:54:26

+0

謝謝,它是我可以從頭頂寫下來的最簡單的一個。 – 2013-03-21 09:55:16

0

您可以檢查流

using(var stream = new FileStream("file.name", FileMode.OpenOrCreate, FileAccess.ReadWrite)) 
using (var writer = new StreamWriter(stream)) 
{ 
    if (stream.Length == 0) 
    { 
     // Write header here 
    } 
} 
相關問題