我正在通过WCF传递一些Base64编码的字符串,我正在尝试将它们写入文件。但是,尽管我的FileStream对象的长度大于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
总是如此。
答案 0 :(得分:8)
您是否尝试过调用FileStream.Flush?
在关闭流之前调用它。
您还应该使用“using”语句来确保清理流。