COMException:在Presentations集合中找不到项目默认值

时间:2012-11-27 16:09:54

标签: c# powerpoint office-interop

手头的任务似乎并不太复杂,但实施是一个不同的故事。我有一个Web界面,用于上传.pptx文件,这些文件被操纵并最终移动到与托管应用程序的Web服务器分开的服务器。另外,我还需要将文件从.pptx更改为.ppsx。

我尝试使用File.Copy方法重命名该文件,其中我在目标端给出了一个不同的名称但似乎破坏了文件并且无法打开它。

尝试使用Microsoft.Office.Interop会抛出上述错误。有谁知道如何纠正这个问题?

这是我的代码。

感谢。

string[] txtList = Directory.GetFiles(tempSavePath, fileName);
Microsoft.Office.Interop.PowerPoint.Application app = new Microsoft.Office.Interop.PowerPoint.Application();
Microsoft.Office.Interop.PowerPoint.Presentation pptPresentation = null;
foreach (string f in txtList)
{
    try
    {
        File.Copy(Path.Combine(tempSavePath, fileName),Path.Combine(remoteShareSLEBBPortal, fileName));                        
        FileInfo _fileInfo = new FileInfo(@tempSavePath + fileName);
        Process.Start(@tempSavePath + fileName);
        var presCol = app.Presentations;
        Thread.Sleep(2000);
        pptPresentation = presCol[@tempSavePath + fileName];
        pptPresentation = app.Presentations.Open(@tempSavePath + fileName, MsoTriState.msoFalse, MsoTriState.msoFalse, MsoTriState.msoFalse);
    }
    catch (IOException copyError)
    {
        WriteException(copyError, "File Coppying");
    }
}

0 个答案:

没有答案