我正在使用Interop程序集进行办公扩展,作为此扩展的一部分,我正在构建的exe的主要目标是将PPTX幻灯片导出为单个图像。
我还想创建一个文本文件,其中包含每张幻灯片的一些信息。我可以导出幻灯片。我还创建了一个文本文件,但没有写入任何内容。每个文件应导出为1.txt,2.txt ...
class {
static void ConvertAndExportImagesAndTextFiles(ARGS){
//Some stuff that reads and prepares the slides for the export method
//Loops and exports several "objSlide" after taking args
foreach (Microsoft.Office.Interop.PowerPoint.Slide objSlide
in objActivePresentation.Slides)
{
i++;
string PathAndNumber = string.Concat(FilePath, i);
string PathAndNumberWithExt = string.Concat(PathAndNumber, ".txt");
FileStream fs = new FileStream(
PathAndNumberWithExt ,
FileMode.OpenOrCreate,
FileAccess.ReadWrite);
StreamWriter sw = new StreamWriter(fs);
try
{
sw.WriteLine("Howdy World.");
}
finally
{
?????????
}
objSlide.Export(FilePath, format, res, res);
}
对不起,我迷路了...幻灯片导出因为它们被PowerPoint编入索引,但是我需要在这里输入一些内容吗?
答案 0 :(得分:2)
只需将FileStream和StreamWriter放入using
子句即可。问题是您的写入是缓冲的,直到您调用Close
(或using
为您执行此操作),该缓冲区仍保留在内存中,并且不会被写出来。
using (var sw = new StreamWriter(new FileStream(...)))
{
sw.WriteLine("Howdy World.");
}
正如评论者指出的那样,你可能想要使用简写:
using (var sw = File.CreateText(...))
{
sw.WriteLine("Howdy World.");
}