|
- //===================这是将Xml文档的文本内容附加到png文件末尾的代码===========================
- //filename是已存在的磁盘png图片的全路径文件名
- using (StreamWriter sw = File.AppendText(filename))
- {
- sw.WriteLine();//这个可有可无。
- sw.WriteLine("<?Lunar Presentation?>");//这是为了将来再将文本读取出来而添加的一个分隔符。
- sw.Write(Globals.selectedEditor.XmlDocument.OuterXml);//本例中要附加到png图片文件末尾的
- //是一个Xml文档的全部文本内容(utf-8编码)
- System.Windows.MessageBox.Show("已导出为:" + filename ",
- "Lunar Presentation", MessageBoxButton.OK, MessageBoxImage.Information);
- }
- }
- //===================这是将Xml文档的文本内容附加到png文件末尾的代码============================
- //需要从png图片中恢复源Xml文档时,再根据自定义的标记(本例中是“<?Lunar Presentation?>”)读取出来即可。
- //=================这是将Xml文档的文本内容从png文件末尾再读出来的代码==========================
- bool start = false;//这个变量用以判断应从哪里开始读取文本(也就是找出Png图片文件尾部附加文本的开端)
- StringBuilder sb = new StringBuilder();
- using (StreamReader sr = File.OpenText(filename))
- {
- string s = "";
- while ((s = sr.ReadLine()) != null)
- {
- if (start == false)
- {
- if (s.EndsWith("<?Lunar Presentation?>"))//找到写入时自定义的标记就意味着下面就是附加的Xml文本了。
- {
- start = true;
- }
- continue;
- }
- sb.Append(s);//将附加的所有属于Xml文档的文本行都读取出来。
- }
- if (sb.Length <= 0)
- {
- MessageBox.Show(" 这个PNG文件可能不是由本程序导出的图片文件!无法从中获取文档内容。",
- "Lunar Presentation", MessageBoxButtons.OK, MessageBoxIcon.Warning);
- return;
- }
- editor.XmlDocument.LoadXml(sb.ToString());//sb.ToString()的结果就是附加的Xml文档的全部内容。
- }
- //=================这是将Xml文档的文本内容从png文件末尾再读出来的代码==========================
复制代码 |
|