【发布时间】:2009-11-09 22:59:15
【问题描述】:
我正在通过 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 也总是如此。
【问题讨论】:
-
如何验证文件是否为空?
-
这可能看起来很简单,但是您是否调试过代码以确保您确实进入了 WHILE 块?
-
这很简单。最终的解决方案是让我查看正确目录的
"tmp.ext"文件...不要问,这是其中的一个日子,但感谢大家的帮助! -
稍微相关,您可能需要考虑使用 Path.Combine 而不是简单的字符串连接来创建文件名。在这种情况下,它会使您的代码更长,但也会使代码更能代表您的意图。
标签: c# file filestream