2011-05-11 90 views
1

我想在要保存的文本文件的第一行添加文件的名稱。我該怎麼做?這是一個代碼。我找不到一個方法讓stringbuilder在其實例的開始處追加。將savedialog的文件名追加到將要保存的文件

StringBuilder sb = new StringBuilder(); 

sb.AppendLine("BLAH BLAH"); 

if (saveFile.ShowDialog() == DialogResult.OK) 
{ 
    //How to append file name at the beggining of the file to be saved? 

    File.WriteAllText(saveFile.FileName, sb.ToString()); 
} 

謝謝。

回答

2

你打電話之前WriteAllText添加此行:

sb.Insert(0, saveFile.FileName + Environment.NewLine); 

- 或 -

string outString = saveFile.FileName + Environment.NewLine + sb.ToString(); 
File.WriteAllText(saveFile.FileName, outString); 
+0

咩,儘量不要增加一倍所需要的內存量。 – 2011-05-11 01:28:10

+0

@Hans由於StringBuilder內存分配而使內存翻倍? SB.Insert()是否總是強制執行SB內存分配?我檢查並找不到任何細節。 – 2011-05-11 03:04:02

1

要保留以前的文本:

StringBuilder sb = new StringBuilder(); 

// Appending string to your StringBuilder string value. 
sb.AppendLine("BLAH BLAH"); 

if (saveFile.ShowDialog() == DialogResult.OK) 
{ 
    // Keep the previous file text .. By inserting it in the begining of the 
    // StringBuilder string value. 
    sb.Insert(0, File.ReadAllText(saveFile.FileName) + Environment.NewLine); 

    // Insert File Name in the begining of the StringBuilder string value. 
    sb.Insert(0, saveFile.FileName + Environment.NewLine); 

    File.WriteAllText(saveFile.FileName, sb.ToString()); 
} 
+0

謝謝,你能說什麼是第一個和第二個sb.Insert方法在做什麼? – 2011-05-11 12:22:25

+0

@ Sean87:編輯我的答案,提供一些意見.. – 2011-05-11 12:26:44