2011-05-11 94 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