错误HRESULT E_FAIL已从调用COM组件返回

时间:2013-07-01 12:23:13

标签: c# interop powerpoint office-interop office-automation

我正在获得以下代码行的异常:

 System.Net.WebClient wc = new System.Net.WebClient();
 byte[] data = wc.DownloadData(xmlTempNode.Attributes["imageurl"].Value.ToString());
 MemoryStream ms = new MemoryStream(data);
 System.Drawing.Image img = System.Drawing.Image.FromStream(ms);
 string strImagePath = pptdirectoryPath + "\\" + currentSlide + "_" + shape.Id + ".png";
 img.Save(strImagePath);
 Microsoft.Office.Interop.PowerPoint.Shape sp = shape;

 xmlTempNode.Attributes["imgwidth"].Value = xmlTempNode.Attributes["imgwidth"].Value.Replace("px", "");
 xmlTempNode.Attributes["imgheight"].Value = xmlTempNode.Attributes["imgheight"].Value.Replace("px", "");

 //Getting exception on below line
 shape.Fill.UserPicture(strImagePath);

strImagePathD:\projects\MAMMP\trunk\Applications\Applications.Web\\cache\ppt\60ba9d41-00e0-44fd-9c2c-7591c881a1a0\\6_1026.png

任何帮助人员。

1 个答案:

答案 0 :(得分:2)

不要混用

  

\\

  

\

字符串路径中的

也许应该是这样的:

string strImagePath = pptdirectoryPath + currentSlide + "_" + shape.Id + ".png";

pptdirectoryPath 字符串也有很多反斜杠。


单个反斜杠是所谓的“转义”字符。这用于包括特殊字符,如tab(\ t)或新行(\ n)。为了在路径的情况下指定反斜杠,您必须使用转义字符“占用”单斜杠,这意味着您必须编写双反斜杠。