2

我正在通过 WCF 传递一些 Base64 编码的字符串,并且正在尝试将它们写入文件。但是,尽管我的 FileStream 对象的 Length 大于 0,但我在磁盘上的文件仍然是空的。

FileStream fs = new FileStream(Config.Instance.SharedSettings.SaveDir + StudyInstance.StudyId + "\\tmp.ext", FileMode.Create);

EncodeBlock eb = new EncodeBlock();

while (eb.Part != eb.OfParts || eb.OfParts == 0)
{
    eb.ToDecode = ps.StudyService.GetInstancePart(StudyInstance, s, eb.Part+ 1, Config.Instance.ClientSettings.AppData);
    eb = Base64Encoder.Decode(eb);
    fs.Write(eb.ToEncode, 0, eb.ToEncode.Length);
}

fs.Close();

eb.ToEncode的长度始终大于 0,fs.Length始终大于 0,但我的"tmp.ext"文件已创建,但仍为空。fs.CanWrite总是如此。

4

1 回答 1

8

您是否尝试过调用 FileStream.Flush?

在关闭流之前调用它。

您还应该使用“使用”语句来确保清理流。

于 2009-11-10T01:57:34.957 回答