我试图将多个rtf文档合并为一个。合并的大小增加(所有文档的大小)但是当我打开时,我只能看到第一个RTF文件内容。
string srcpath = @"C:\CSI\RTFtest\src\";
string despath = @"C:\CSI\RTFtest\dest\single.rtf";
string content = "";
List<string> files = new List<string>(Directory.GetFiles(srcpath, "*.rtf"));
StreamReader read;
if (files.Count > 1)
{
for (int i = 0; i < files.Count; i++)
{
String filename = files[i];
content = File.ReadAllText(filename);
//content = content + read.ReadToEnd();
File.AppendAllText(despath, content.ToString());
File.AppendAllText(despath, System.Environment.NewLine);
}
答案 0 :(得分:0)
RTF文件不是文本文件。你不能jsut连接文本,因为涉及标题和其他结构。你可以在这里阅读关于这个规范的所有内容http://support.microsoft.com/kb/86999(哎呀)。 如果您使用的是wpf,则可以使用TextRange对象,将第一个文件加载到其中,然后附加每个附加文件的内容。或者您可以将文件读取到winforms中的richtextbox对象中并附加内容(如何加载:http://msdn.microsoft.com/en-us/library/1z7hy77a.aspx)。 我想你可以使用TextBox1.Rtf = TextBox1.Rtf + textBox2.rtf直到所有都被加载,因为rtf属性是包含rtf编码的字符串。
答案 1 :(得分:0)
使用StringBuilder
。您可以将RTF附加到RTF。
示例:
StringBuilder sb = new StringBuilder();
sb.Append(@"{\rtf1\ansi");
sb.Append(@"...
HPIrichTextBox.Rtf = sb.ToString();