如何在资源文件C#中打开PowerPoint文件

时间:2017-05-18 10:10:43

标签: c#

我的资源文件夹中有许多小PowerPoint个文件,我想打开它们。由于我的Resource.sendToPPTTemp类型为byte[]而我打开文件我需要它作为字符串,因此我遇到了问题。有没有办法可以将资源中的文件作为字符串打开?

var file = Resources.sendToPPTTemp;
ppnt.Application ppntApplication = new ppnt.Application();
var _assembly = Assembly.GetExecutingAssembly();

var myppnt = ppntApplication.Presentations.Open(file.ToString());
ppntApplication.Visible = MsoTriState.msoTrue;

1 个答案:

答案 0 :(得分:0)

您需要将文件的路径提供给Open方法,而不是二进制表示。您有路径并将其传递给方法,或者您必须使用byte []创建一个文件。

我宁愿创建一个包含所有PPT的文件夹,并在资源文件中存储该文件夹的路径。然后你可以使用第一种方法:

var di = new DirectoryInfo(Resources.PPTFolderPath);
foreach(var file in di.GetFiles())
{
    var myppnt = ppntApplication.Presentations.Open(fi.FullName);
    ppntApplication.Visible = MsoTriState.msoTrue;
    [..]
}

但是如果你真的想将PPT存储在资源文件中,你可以像这样使用临时文件:

var tmpPath = Path.GetTempFileName();
try
{
    File.WriteAllBytes(tmpPath, Resources.sendToPPTTemp);

    var myppnt = ppntApplication.Presentations.Open(tmpPath);
    ppntApplication.Visible = MsoTriState.msoTrue;
    [..]
}
finally
{
    // you have to delete your tmp file at the end!!!
    // probably not the better way to do it because I guess the program does not block on Open.
    // Better store the file path into a list and delete later.
    var fi = new FileInfo(tmpPath);
    fi.Delete();
}