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

시큰둥가 필요한 두 배로 않으려을 양의 메모리. –

+0

@Hans StringBuilder 메모리 할당으로 인해 메모리가 두 배가됩니까? SB.Insert()는 항상 SB 메모리 할당을 강제합니까? 확인하고 세부 사항을 찾을 수 없습니다. –

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 메서드는 무엇이라고 할 수 있습니까? –

+0

@ Sean87 : 일부 의견을 제공하여 내 대답을 수정했습니다. –

관련 문제