C#StreamWriter:如何创建多个文本文件并写入它们?

时间:2012-01-13 20:34:07

标签: .net c#-4.0 office-interop

我正在使用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编入索引,但是我需要在这里输入一些内容吗?

1 个答案:

答案 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.");
}